STM32学习(3) 按键扫描思路_正点原子

1. 按键分类

  支持连续按

    不支持连续按

2. 按键输入实验

  2.1按键扫描思路(支持连续按)

 u8 KEY_Scan(void)
 {
      if(KEY按下)
     {
           delay_ms(10);//延时10-20ms,防抖。
           if(KEY确实按下)
            {
               return KEY_Value;
             }
          return 无效值;
      }
  }

  

  2.2按键扫描思路(不支持连续按)

 u8 KEY_Scan(void)
{
     static u8 key_up=1;
      if(key_up &&  KEY按下)
      {
        delay_ms(10);//延时,防抖
        key_up=0;//标记这次key已经按下
        if(KEY确实按下)
          {
           return KEY_VALUE;
          }
        }else if(KEY没有按下)  key_up=1;
       return 没有按下
}

  2.3 按键扫描思路(合二为一)

    

 u8 KEY_Scan(u8 mode)
{
     static u8 key_up=1;
     if(mode==1) key_up=1;//支持连续按
      if(key_up &&  KEY按下)
      {
        delay_ms(10);//延时,防抖
        key_up=0;//标记这次key已经按下
        if(KEY确实按下)
          {
           return KEY_VALUE;
          }
        }else if(KEY没有按下)  key_up=1;
       return 没有按下
 }

  

 

posted @ 2019-04-07 16:27  浮生缭乱  阅读(674)  评论(0)    收藏  举报