震惊!某萌新竟然怀疑正点原子的板子有问题!原子哥竟然...

2019-08-20 16:12发布

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的会更离谱,真心搞了一下午,尝试了各种方法,终于发现是这一块的问题,心好累,求助原子哥!!!求助各位前人!!!


       
         }

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
augustedward
1楼-- · 2019-08-20 19:38
时冢不是泽 发表于 2017-4-25 19:15
噢噢,谢谢给了些启发,虽然我觉得你没具体说出问题,应该是显示那里乘10出了些问题,可能和你说的精度有 ...

你在显示时,在原来的数值上加上0.000001,应该就没问题了,或加上0.001也行
时冢不是泽
2楼-- · 2019-08-21 00:09
这种有关于内部知识现在真心不太懂啊、、、
jermy_z
3楼-- · 2019-08-21 00:22
标题党起了个作死的标题  当心被封杀   哈哈哈哈
时冢不是泽
4楼-- · 2019-08-21 04:12
jermy_z 发表于 2017-4-25 17:08
标题党起了个作死的标题  当心被封杀   哈哈哈哈

新手第一次发帖子,不懂规矩,但求知心是真的,而且这个问题真的很困扰啊,捣鼓6个小时是有了,而且网上也没搜到这方面的解决方法,相信原子哥胸怀宽广,会原谅咱的,话说同志你会觉得这个问题非常low吗?……
augustedward
5楼-- · 2019-08-21 06:58
 精彩回答 2  元偷偷看……
Huangshuqian
6楼-- · 2019-08-21 11:26
明天你去UC报道,上班吧

一周热门 更多>