关于STM32定时器中断检测按键的问题

关于STM32定时器中断检测按键的问题:

1、硬件设计:硬件设计中一定要添加并联的电容。如果没有电容,按键基本没有灵敏度可言。不论是主函数直接无差别查询按键状态,还是使用外部中断的方式,按键基本不灵敏。

有人说,我函数中增加滤波延时,把按键毛刺过滤不就好了?但这种情况下由于按键按下的时间不一,毛刺和持续电平保持时间不好测算,若是延时过度,检测不到按键状态,若延时过短,很可能读取区间在毛刺区间,导致电平读取错误,因而必须增加电容,作为毛刺滤波和电平保持。

2、电容选择:电容选择大小直接影响读取的灵敏度。
若是选取电容过大,则按键取消按压后,电平保持时间长,很容易在定时器中断或查询模式中重复读取。
若电容选择过小,电平持续时间不够,尤其在轮询情况下,按键按下后,在顺序检查按键状态时,电容电平已经低于读取阈值了,按键失效。

3、当然在定时器中断模式下可以调整进入中断的时间来匹配设计的滤波电容,保证按键按下后,电容端的电平维持时间正好和定时器中断时间一致,这样可以保持按键可以及时且单次读取到。
至于电容和定时器中断时间的匹配需要自己尝试,自己常用的搭配是:1uf电容+500um定时器中断。可以很好的实现按键效果。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值