新手按键真的好烦

2019-08-17 08:17发布

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


消除抖动以后如果没确定按下呢,最后key_up=0还是表示按下啊,
if(key_up&&(KEY0==0||KEY1==0||WK_UP==1))这句执行0的时候才会执行这句else if(KEY0==1&&KEY1==1&&WK_UP==0)key_up=1;         ?
如果if(KEY0==0)return KEY0_PRES;
                else if(KEY1==0)return KEY1_PRES;
                else if(WK_UP==1)return WKUP_PRES;这三句都为假的话是直接执行return 0吗 求大神解释一下

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
7条回答
stm32f103ZE
2019-08-17 11:29
u8 KEY_Scan(u8 mode)
{         
        static u8 key_up=1;//按键按松开标志
        if(mode)key_up=1;  //支持连按                  
        if(key_up&&(KEY0==0||KEY1==0||WK_UP==1))
        {
                delay_ms(10);//去抖动
                key_up=0;
                if{
                       (KEY0==0)return KEY0_PRES;
                       else if(KEY1==0)return KEY1_PRES;
                       else if(WK_UP==1)return WKUP_PRES;
                   }else if(KEY0==1&&KEY1==1&&WK_UP==0)key_up=1;
        }            
        return 0;// 无按键按下
}
这个程序对吗,求大神讲解一下

一周热门 更多>