当按下按键时,机械结构使得触点瞬间闭合,但由于触点存在一定的弹性,可能会在短时间内多次闭合和断开,这种现象被称为按键抖动。
stm32消抖指的是通过软件来消除按键的抖动现象,保证按键的实际操作准确无误。
stm32消抖的原理是通过识别按键的电平变化,将瞬间抖动的多个电平变化转化为一个有效按下或者松开的事件。
当发生按键事件时,采集按键的电平并判断其是否为有效电平。(一般为高电平或低电平)
将两次检测之间持续时间短于一定时间的多个电平变化看做是同一个按键事件,消抖后在系统中产生唯一的一个按键事件。
stm32消抖的实现方法一般包括两种——硬件消抖和软件消抖。硬件消抖是通过外部元器件完成按键的消抖操作;软件消抖则是通过程序来实现的。
硬件消抖的方法一般会增加电路成本,因此在很多实际应用中都采用了软件消抖。
软件消抖的主要思路是,通过在显示周期中进行多次扫描,并识别键值变化以消除抖动。 在完成多次扫描后,如果按键按下持续时间大于定义的消抖时间,则判定按键状态已经稳定。对于被测信号抖动过大的情况,可以增加扫描次数或者增加消抖时间。
消抖的主要作用是消除按键的干扰,保证按键输入的正确性和稳定性。消抖可以有效的保证系统的性能和可靠性,并避免一些由于按键抖动产生的功能错误。
如果没有按键消抖,有时候我们按下按键时,机器会接受到一串并不是我们实际想要的按键信息,从而可能会导致误操作的发生。
因此,消抖是在实际的嵌入式系统中占据着非常重要的位置。