STM32F4-KeyFIFO

STM32按键FIFO

主要思想就是:

1.先配置按键的初始计数值为滤波值。如,滤波为40ms,则配置该值为固定初始值,如10(假如扫描周期为10ms),每间隔一定时间(上面说的10ms)去检测一次按键的状态,如按键按下则增加该值,按键松开就减少该值。检测该按键的计数值,如大于初始值+滤波值(10+4),则认为是确实按下了,就压栈该按键的按下状态值;如小于初始值-滤波值(10-4),则认为该按键松开了,就压栈该按键的松开状态值。长按也是一样的,如按下1秒确认为长按,则长按的滤波值为100,如检测到该按键的状态值大于初始值+滤波值(10+100),则认为按键长按有效了,就压栈该按键长按状态值。

2.栈FIFO,先进先出的概念,主循环里一直检测(或者如果要求不用很及时响应则可以用定时器定时检测)栈里是否有值,如有就处理该按键值对应的功能。

具体参见代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值