按键实现数字加减,OLED实时显示,代码都用的教程里的原始代码,然而实际执行过程中会一直出现这样的情况:按下一个键后再按下另一个键,这时执行的却是上一个按键的操作,比如按下+后按-,实际会先+一次,然后正常开始-,有点搞不明白是为什么,求大神解惑
主函数涉及代码如下
- t=KEY_Scan(0); //得到键值
- switch(t)
- {
- case KEY_UP:
- OLED_Fill(55,38,72,38,0);
- number++;
- OLED_ShowNum(55,38,number,2,16);
- break;
- case KEY_DOWN:
- OLED_Fill(55,38,72,38,0);
- number--;
- OLED_ShowNum(55,38,number,2,16);
- break;
- case KEY_CONFIRM:
- flag_CONFIRM=1;
- break;
- case KEY_BACK:
- number=0;
- flag_CONFIRM=0;
- default:
- delay_ms(10);
- }
复制代码
|