【STM32】按键抖动及消除

5 篇文章 0 订阅
3 篇文章 0 订阅

由于按键的抖动会导致一次按键动作被当成多次按键,为确保MCU对按键的一次闭合仅作一次处理,必须消除按键的抖动,在按键处于稳定状态时读取按键的状态。

 

按键的去抖动,通常有硬件消抖和软件消抖两种方式。

(1)硬件消抖

在按键数目较少时,可以采用硬件的方法消除按键抖动。比较简单的硬件电路是利用电阻和电容构成的RC低通滤波器来实现,电路结构如图所示。

采用RC低通滤波器实现硬件去抖的关键是选择适当的电阻值和电容值。由于人按键的频率一般低于1kHz,而按键抖动的频率一般是几十到几百kHz。因此,可以将低通滤波器的截止频率选择为10kHz。根据截止频率计算式fLP=1/2πRC可以选取160 Ω的电阻以及0.1 pF的电容来构成RC低通滤波器。

(2)软件消抖

如果按键数目较多,可以采用软件的方法消除按键抖动。处理流程如下:当检测到按键按下后执行一个延时程序,延时时间为5~10 ms。当前沿抖动消失后,再次检测按键的状态,如果仍然保持按下状态,则确认按键真正按下,并执行按键处理任务。同样,对于按键的释放,也需要采用延时函数去掉后沿的抖动。

  • 2
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值