刚刚接触STM32,关于按键实验中有关不支持连续按键那个地方理解的不明白

2019-07-21 02:14发布

[mw_shl_code=c,true]u8 KEY_SCAN(void) { static u8 key_up=1; if(key_up&&key按下) {delay_us(10); key_up=0; {return key_value;} } else if(key没有按下)key_up=1; }[/mw_shl_code] 看过视频教程后,我对这段代码的理解是这样的,假如说每100ms扫描一次,那么一秒钟就会扫描10次,在第一次扫描后假如说我之前没有按键,那么程序会执行到if语句里面,所以key_up被置0;当我一直按着不放时,当我第二次扫描时,由于key_up是静态变量,那么便会执行else if语句,则将key_up置为1,程序理所当然会执行if里面的语句,此时便会又一次返回key_value的值,可是按照不支持连续按键的意思,如果我此时还不松开按键,那么便不会是一次成功的按键,这样不是跟代码有矛盾吗,所以我不明白为什么else if(key没有按下)后面要将key_up=1;
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。