| 
 
| unsigned char key_scan(void) {
 static unsigned char key_state=0,key_old;
 unsigned char key_press,key_return=KEY_NO;
 key_press=PINE&0x07;
 switch(key_state)
 {
 case key_state_0:
 if(key_press!=KEY_NO) key_state=key_state_1;key_old=key_press;//key_old=key_press这句不要
 break;
 case key_state_1:
 if(key_press==key_old)//这句改成if(key_press!=KEY_NO)
 {
 key_return=key_press;
 key_state=key_state_2;
 }
 else
 {
 key_state=key_state_0;
 }
 break;
 case key_state_2:
 if(key_press==KEY_NO)
 {
 key_state=key_state_0;
 }
 break;
 }
 return key_return;
 }
 
 
 
 于扫描PE口的pe0~pe2的独立按键(10ms扫描一次)但是为啥在没有按键的情况下我用手碰(PE0~PE2)中的一个按键就误动作(修改不修改都是这样)的上拉电阻我已经开启了 修改后有20%的概率出现按键按下但没有响应不知道为啥希望大家帮帮忙
 这两个本质的区别是什么呢
 | 
 |