stm32战舰v3一体按键,一起讨论。

2019-08-17 00:26发布

本帖最后由 aiyeba 于 2017-7-13 10:19 编辑

   有时候,当单片机的IO 口不够用的时候,想按键这种倒是可以节省一些。 于是一体按键孕育而生。

一体按键,集单按,双击、长按为一体。一个按键三个功能,确实很有实际的使用价值。

我最近用原子哥按键尝试,发现一个很恶心的问题,v3的按键感觉弹起来很慢的感觉。

下面是我写的算法,大家可以改进一下,里面的串口打印只是调试用的。


u8  key0_1ms_EN=0;  //使能开始计数
u8  key0_1ms_cnt=0; //定时器每1ms加1




void Key_Scan(void)
{
    static u8 key_status=0;
    static u8 key_cnt=0;      //确定单击 还是双击
    static u8 key_flag=0;

    switch(key_status)
   {

      case 0:
     {
             if(KEY0==0)
            {
               key0_1ms_EN=1;
               key0_1ms_cnt=0;
               key_ststus=1;
               break;
            }
           if(key_flag==1&&key_cnt==1)
           {
               if(key0_1ms_cnt>800)
              {
                 key_cnt=0;
                 key_flag=0;
                 LED0=0;
                 LED1=1;
              }
           }
     }
     case 1:
     {
            if(KEY0==1)
           {
              key_status=0;
              break;
           }
           if(key0_1ms_cnt>=30&&KEY0==0)
           {
               key_cnt++;
               if(key_cnt>=2)
              {
                key_flag=0;
                key_cnt=0;
                key_status=3;
                LED0=1;
                LED1=1;
                break;
               }
               key_status=2;
           }
           break;
    }
    case 2:
    {
            if(KEY0==1)
            {
               key_flag=1;
               key_status=0;
               break;
            }
            if(key0_1ms_cnt>=2000&&KEY0==0)
            {
                LED0=0;
                LED1=0;
                key_status=3;
            }
            break;
    }
   case 3:
   {
           if(KEY0==1)
          {
             key_flag=0;
             key_cnt=0;
             key_status=0;
          }
         break;
    }
  }
}































友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
aiyeba
1楼-- · 2019-08-17 00:49
已经解决了,效果很得不得了。
正点原子
2楼-- · 2019-08-17 02:10
弹起来很慢?不会啊,你按键没坏吧?
aiyeba
3楼-- · 2019-08-17 07:49
 精彩回答 2  元偷偷看……

一周热门 更多>