求帮忙看一下这段实战篇按键的代码

2019-07-20 05:45发布

u8 KEY_Scan(u8 mode)
{
static u8 key_up=1;//按键按松开标志
if(mode)key_up=1; //支持连按
if(key_up&&(KEY0==0||KEY1==0||KEY2==0||WK_UP==1))
{
delay_ms(10);//去抖动
key_up=0;
if(KEY0==0)return 1;
else if(KEY1==0)return 2;
else if(KEY2==0)return 3;
else if(WK_UP==1)return 4;
}else if(KEY0==1&&KEY1==1&&KEY2==1&&WK_UP==0)key_up=1;
return 0; //无按键按下
}  


这段代码是开发板实战篇里按键联系的代码。
哪位大神能帮忙解释一下标红的这句话的涵义啊,从代码逻辑来看,我怎么觉得无论mode是0还是1,最后key_up都会被赋值为1呢,但是实际情况mode不一样,确实会出现不一样的现象,求解惑为什么会这样。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
GAOSIY
1楼-- · 2019-07-20 08:18
明白了,静态局部变量的坑。。。
烈日灼心
2楼-- · 2019-07-20 13:13
 精彩回答 2  元偷偷看……
GAOSIY
3楼-- · 2019-07-20 15:38
烈日灼心 发表于 2018-10-8 11:31
这不是坑 这是设计,

为啥要这么设计呢,可读性很差啊
烈日灼心
4楼-- · 2019-07-20 20:01
 精彩回答 2  元偷偷看……
yklstudent
5楼-- · 2019-07-20 21:20
 精彩回答 2  元偷偷看……
GAOSIY
6楼-- · 2019-07-20 22:13
yklstudent 发表于 2018-10-9 09:03
这是实战的代码?

对的,实战代码

一周热门 更多>