打印

矩阵按键求解答疑惑

[复制链接]
460|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
roucun|  楼主 | 2020-4-20 17:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
u8 KEY_Scan()
{
   1  static u8 key1_up=1;//按键按松开标志


    //第一行
        Hang_00_L;//把第一行输出低电平
        Hang_01_H;
        Hang_02_H;
        Hang_03_H;
                if(key1_up&&Lie_00_V==0)
                {   
                   delayMs(jpys); //延时20秒,软件消抖
                        
                  2 key1_up=0;
                   if(Lie_00_V==0) //如果第一列是低电平,说明有键被按下,如果没有直接退出if语句
                   {
                          return 16;
                   }
                }else if(Lie_00_V==1)key1_up=1;

}


int main(void){
  while(1)
        {
        3  A = KEY_Scan();
                if(A != 0)
                {
                        USART_SendData(DEBUG_USARTx,A);
                        printf("\r\n%d\r\n",A);
                }
        }
}
硬件调试的时候为什么我把按键按下不松开的时候第一次经过2那里后key1_up的值就一直为0,每次进入KEY_Scan()函数不都应该执行static u8 key1_up=1;赋值为1吗
而当我按下按键松开后,再次执行KEY_Scan()函数A就会变为1.为什么松开就可以重新赋值,不松开就不行

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

421

主题

446

帖子

0

粉丝