欢乐马 发表于 2019-8-20 14:13:01

按键实验中mode为什么突然就判断if(mode==1){```},没有执行过其它能让mode=1的运算

/*******************************************************************************
* 函 数 名         : KEY_Scan
* 函数功能                   : 按键扫描检测
* 输    入         :mode=0:单次按下按键
                                                                                mode=1:连续按下按键
* 输    出         : 0:未有按键按下
                                       KEY_UP:K_UP键按下
                                       KEY_DOWN:K_DOWN键按下
                                       KEY_LEFT:K_LEFT键按下
                                       KEY_RIGHT:K_RIGHT键按下
*******************************************************************************/
u8 KEY_Scan(u8 mode)
{
        static u8 key=1;
        if(key==1&&(K_UP==1||K_DOWN==0||K_LEFT==0||K_RIGHT==0)) //任意一个按键按下
        {
                delay_ms(10);//消抖
                key=0;
                if(K_UP==1)
                {
                        return KEY_UP;
                }
                else if(K_DOWN==0)
                {
                        return KEY_DOWN;
                }
                else if(K_LEFT==0)
                {
                        return KEY_LEFT;
                }
                else
                {
                        return KEY_RIGHT;
                }
        }
        else if(K_UP==0&&K_DOWN==1&&K_LEFT==1&&K_RIGHT==1)    //无按键按下
        {
                key=1;
        }
        if(mode==1) //连续按键按下
        {
                key=1;
        }
        return 0;
}



对按键实验中,mode为什么突然就判断if(mode==1){```},没有执行过其它能让mode=1的运算

YXUN 发表于 2019-8-21 09:11:34

mode 是个形参,你看调用按键函数的时候给他赋值是多少
页: [1]
查看完整版本: 按键实验中mode为什么突然就判断if(mode==1){```},没有执行过其它能让mode=1的运算