按键硬件去抖电路

 如图,主要利用了电容的充放电时间来实现去抖;

电容越大、电阻越大,充放电时间越长,去抖效果越好,不过太大了按键响应会太长;

相反则反之;

一般而言用上图的阻容值效果刚好。

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在STM32的按键扫描中,由于机械弹性等因素,按键在按下和松开的瞬间会产生动,这会导致微处理器误判按键的状态,从而造成按键的误触发。为了解决这个问题,我们需要进行按键的去动处理。 一般来说,按键分为硬件和软件去两种方法,下面分别介绍: ### 硬件 硬件是通过硬件电路的设计来实现的,其原理是利用RC滤波器,将输入的电压信号进行平滑处理,从而消除按键动产生的干扰。 具体实现方法如下: 1. 将按键引脚连接到STM32的GPIO口,设置为输入模式。 2. 在按键引脚与STM32之间串联一个电容,电容的值一般为 0.1uF。 3. 在按键引脚上拉一个 10KΩ 的电阻,使按键处于高电平状态。 4. 在程序中读取按键引脚的电平状态,如果检测到按键按下,则延时一段时间后再次读取引脚的电平状态,如果此时引脚的电平仍为低电平,则认为按键按下有效。 ### 软件去 软件去是通过程序的方式来实现的,其原理是利用延时函数和状态机的方式,将输入的按键信号进行滤波处理,从而消除按键动产生的干扰。 具体实现方法如下: 1. 将按键引脚连接到STM32的GPIO口,设置为输入模式。 2. 在程序中循环读取按键引脚的电平状态,如果检测到按键按下,则判断为有效按键,执行相应的操作。 3. 在判断按键是否按下时,加入一段延时,一般为几毫秒(如 10ms),如果在延时过程中检测到按键松开,则认为按键无效,重新开始循环读取按键引脚的电平状态,直到检测到按键按下。 在软件去的实现中,需要注意延时的时间不能过长或过短,过长会导致响应速度变慢,过短会导致误判按键状态。一般建议延时时间为 5-20ms。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值