【STM32进阶系列】推荐一种好用的按键处理程序

文章介绍了如何在STM32项目中使用基于状态机的按键处理程序,以实现按键的长按、短按和开关状态检测。通过一个名为multi_button的开源软件,作者改编了代码以适应复杂工程的需求,包括按键的消抖处理和状态切换。状态机每隔5ms检查按键状态,根据变化生成不同事件,回调函数执行相应应用。

相信很多刚接触STM32的程序员来说,都会选择一种开发板来学习,而开发板给出的例程也主要是针对初学者,提供一种简单的按键处理方法,让大家更容易理解。但在相对复杂的工程中,这种简单的扫面实现的按键程序有时会显得力不从心。今天给大家分享一段项目中实际应用的按键处理程序。

前端时间在做一个项目时用到了相对复杂的按键处理,于是找到了基于状态机实现按键处理的multi_button开源软件,结合自己的应用对其进行了改编,实现了按键长按、短按、开关状态检测等,使用起来非常方便。

该按键程序的核心是状态机处理函数,对程序中的各个按键(在button init 中声明)进行管理,定期检测按键状态,当发生松开、按下动作时,根据按键状态变化,生成不同的事件,可在回调函数中执行需要的应用。

  1. 状态图如下

<
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值