相信很多刚接触STM32的程序员来说,都会选择一种开发板来学习,而开发板给出的例程也主要是针对初学者,提供一种简单的按键处理方法,让大家更容易理解。但在相对复杂的工程中,这种简单的扫面实现的按键程序有时会显得力不从心。今天给大家分享一段项目中实际应用的按键处理程序。
前端时间在做一个项目时用到了相对复杂的按键处理,于是找到了基于状态机实现按键处理的multi_button开源软件,结合自己的应用对其进行了改编,实现了按键长按、短按、开关状态检测等,使用起来非常方便。
该按键程序的核心是状态机处理函数,对程序中的各个按键(在button init 中声明)进行管理,定期检测按键状态,当发生松开、按下动作时,根据按键状态变化,生成不同的事件,可在回调函数中执行需要的应用。
状态图如下

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

被折叠的 条评论
为什么被折叠?



