按键状态机高移植性方案
状态机的按键,移植性强、逻辑清晰,写嵌入式真是省心不少。
用位图的方式管理键值状态,32 位的 key_down被分成了短按、长按、连击这些区域,判断逻辑全靠状态切换搞定,起来挺灵活的。
绑定方式也蛮巧,0-3 位的预留区域做了个“标记绑定”,按键事件直接映射,不用满地if else
判断,清爽。
短按和连击的判断都靠状态跳转,4-15 位按区分工明确,省了不少临界时间判断的烦恼。嗯,逻辑写好了,不管是跑在 STM32 还是其他 MCU 上都挺稳的。
要说注意的点,最好给每种事件加个消抖,不然真机上一抖动就乱套了。还有就是别太贪心一次太多按键,状态位用完就爆了。
如果你也有多种按键需求,或者搞状态管理有点头疼,可以看看这个方式。配合状态模式的实现,效果更丝滑。
67.81KB
文件大小:
评论区