STM32按键消抖的问题

       

最近在用STM32调试按键,通过按下一个按键来切换不同的状态,如:第一次按下,OLED显示“IntelligentModel”,第二次按下显示“CommonModel ”。结果写好之后,按下按键,不能一次切换过去,要按下多次才能切换,而且OLED的屏幕一直在闪烁这几个字符。于是我想想到了按键消抖的问题,加一个延时10ms,结果不行,当我延时到50ms时,问题解决了!当出现类似问题时,可以适当加大延时,也许就可以解决按键抖动的问题。下面是部分代码:

 while(1)
    {
        key = KEY_Scan(0);
        if(KEY0 == 0)
        {
			delay_ms(50);
            if(KEY0 == 0)
            {
				delay_ms(50);
                flag = ~flag;
                if(flag)
				{
                    OLED_ShowStr(0, 1, (unsigned char*)"IntelligentModel");
				}
                else
				{
                    OLED_ShowStr(0, 1, (unsigned char*)"CommonModel");
				}
            }
        }
  }
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值