int main(void)
{
u8 x=0;
int key_up=1;
float fu1=0;
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
uart_init(115200); //串口初始化为115200
KEY_Init(); //初始化与按键连接的硬件接口
LED_Init(); //LED端口初始化
LCD_Init();
while(1)
{
if(key_up&&KEY1==0)
{
delay_ms(200);
key_up =0;
LED1=!LED1;
fu1+=0.1;
LCD_ShowNum(80,200,fu1*10,16,16);
}
key_up=1;
}
代码如上,特地新建了个工程又尝试了一下,问题是当按key1键,使显示数字到达23时,再按一次,依旧是23,再按一次就是24了,然而当我调用这个fu1变量时,其值(例如显示的是27,调用的时候内部真正的却是28),换成int就没有这个问题,但换成double的会更离谱,真心搞了一下午,尝试了各种方法,终于发现是这一块的问题,心好累,求助原子哥!!!求助各位前人!!!
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
噢噢,谢谢给了些启发,虽然我觉得你没具体说出问题,应该是显示那里乘10出了些问题,可能和你说的精度有关,今晚回去试试。
一周热门 更多>