这两个本质的区别是什么呢

2019-07-20 16:08发布

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%的概率出现按键按下但没有响应不知道为啥希望大家帮帮忙
这两个本质的区别是什么呢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
shimx
1楼-- · 2019-07-20 20:53
注意break的使用、、、、、、、
huangchui
2楼-- · 2019-07-20 22:02
break?  最后的一个  我感觉去和不去都一样呀
liliang9554
3楼-- · 2019-07-21 02:48
 精彩回答 2  元偷偷看……
huangchui
4楼-- · 2019-07-21 03:04
好的,我明天去单位试一下,多谢各位大侠了哈,结贴了先
zhenykun
5楼-- · 2019-07-21 06:28
是的啦,这个的却是看公司开发的整体需求的
spark周
6楼-- · 2019-07-21 10:41
嗯,预料中的结果,先结贴吧,多谢大家啦