由于按键的抖动会导致一次按键动作被当成多次按键,为确保MCU对按键的一次闭合仅作一次处理,必须消除按键的抖动,在按键处于稳定状态时读取按键的状态。
按键的去抖动,通常有硬件消抖和软件消抖两种方式。
(1)硬件消抖
在按键数目较少时,可以采用硬件的方法消除按键抖动。比较简单的硬件电路是利用电阻和电容构成的RC低通滤波器来实现,电路结构如图所示。
采用RC低通滤波器实现硬件去抖的关键是选择适当的电阻值和电容值。由于人按键的频率一般低于1kHz,而按键抖动的频率一般是几十到几百kHz。因此,可以将低通滤波器的截止频率选择为10kHz。根据截止频率计算式fLP=1/2πRC可以选取160 Ω的电阻以及0.1 pF的电容来构成RC低通滤波器。
(2)软件消抖文章来源:https://www.toymoban.com/news/detail-517415.html
如果按键数目较多,可以采用软件的方法消除按键抖动。处理流程如下:当检测到按键按下后执行一个延时程序,延时时间为5~10 ms。当前沿抖动消失后,再次检测按键的状态,如果仍然保持按下状态,则确认按键真正按下,并执行按键处理任务。同样,对于按键的释放,也需要采用延时函数去掉后沿的抖动。文章来源地址https://www.toymoban.com/news/detail-517415.html
到了这里,关于【STM32】按键抖动及消除的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!