从硬件电路和软件方面进行按键消抖

从硬件电路和软件方面进行按键消抖

  1. 什么是按键抖动及按键抖动产生的原因?
    最近在项目中用到了机械弹性开关,这种开关在按下时候不会马上就有稳定的接通,在弹开时候也不会马上断开,在按下和弹开的瞬间会产生一系列抖动。而我项目中STM32芯片是通过中断对按键进行判断的,当芯片检测到上升沿时认为按键按下一次,因为存在开关抖动,所以一次按键操作会被误认为多次,因此需要对按键进行消抖处理。抖动状态图如下所示:
    在这里插入图片描述
    抖动时间一般在10ms以内,根据这个时间在项目中从硬件和软件两个方面进行消抖处理。
  2. 硬件消抖

方式:在电路中并联一个电容,电容容量为0.1uf即可。
在这里插入图片描述

原理:利用电容两端的电压不能突变的特性,将其并联在机械触点两端,消除接触抖动产生的毛刺电压,并且电容需要一定的充放电时间,充放电时间大于抖动时间,以此实现硬件消抖。

  1. 软件消抖

当检测到按键状态变化后,先等待一个 10ms(抖动时间) 左右的延时时间,让抖动消失后再进行一次按键状态检测,如果与刚才检测到的状态相同,认为按键已经按下。

发布了14 篇原创文章 · 获赞 1 · 访问量 6373

猜你喜欢

转载自blog.csdn.net/xwonderful/article/details/104154306