APP下载

基于STM32平台的C语言的按键处理的研究与应用

2019-09-10李文军

科学导报·科学工程与电力 2019年42期
关键词:抗干扰按键

李文军

【摘 要】把有限状态机应用于按键的识别过程中,能够识别按键抬起、按键短按、按键长按等三个状态,并在此三状态的状态机上改进了按键的消除抖动的触发时机,综合考虑了在某些场景下,按键有效操作的准确识别和按键无效操作的干扰甄别的工作,提高了按键识别的准确性和抗干扰能力,并在单键识别的基础上,把有限状态机应用到双键(两个按键同时操作)触发逻辑的识别过程中,同时完全兼容单个按键的任何操作(单个按键短按、单个按键短按抬起、单个按键长按、单个按键长按抬起等),同时还不会引起单键的误操作,使之互不干扰,极大地扩展了多个按键间逻辑组合的可能性,使之能用最少的按键实现最多的逻辑功能。

【关键词】有限状态机;按键;抗干扰;双键识别

1 引言

目前公司的很多型号的显示器中多有按键的采集与使用,硬件平台有不少是基于STM32平台的,代码是用标准C语言编写,每个产品的按键需要实现的功能的难易也基本相同,大多为简单的单键短按或者单键长按功能,所有其按键处理代码有很大的通用性与相似性。按键处理代码沿用的较多。但是在某型指示器的研发交付使用过程中,用户的需求仍在大量频繁的产生,其中就有必须要用到组合按鍵的逻辑功能,这就对按键的及时准确的采集与处理提出了相当高的要求,不巧的是,我们偶然发现此产品在使用过程中,其每一个按键在经过若干次按压后,就会产生一次按键失效,判断是软件缺陷导致的问题,这就要求我们必须重新审视、优化我们一直以来的通用性的按键处理代码,不仅要保证按键每一次采集的准确性和有效性,同时也要提高按键的抗干扰能力,最终达到解决组合按键功能扩展的目的。

2 单个按键的状态迁移设计

对于单个按键的状态变化,详见图1 单个按键的状态迁移图。

我们约定,如果按键原先为抬起动作,则记它从按下到有效按下的时间为t0时间,简称按键按下的消除抖动时间;

如果按键原先为按下动作,则记它从抬起到有效抬起的时间为t1时间,简称按键抬起的消除抖动时间;

1,一个按键的最初始动作记为按键抬起(标记为状态0);

2,状态0在按键按下持续时间小于t0时间后,仍为状态0;

3,状态0在按键按下持续时间不小于t0时间后,状态迁移到按键按下(状态1);

4,状态1在按键抬起持续时间小于t1时间后,仍为状态1;

5,按键按下(状态1)在按键按下持续一段时间(为程序定义的按键长按的最短时间,一般取值在0.5秒~1.0秒之间)后,状态迁移到按键长按(状态2);

6,状态1在按键抬起持续时间不小于t1时间后,设置短按抬起事件标志;

7,状态2在按键抬起持续时间不小于t1时间后,设置长按抬起事件标志;

8,在状态2下按键仍持续按下,如达到50×10毫秒时,设置长按按下事件标志a,如达到100×10毫秒时,设置长按按下事件标志b,如达到150×10毫秒时,设置长按按下事件标志c,依次类推,这样就极大地、灵活地扩展了按键长按的事件个数,非常便于移植和修改;

9,在状态2下按键仍持续按下,超过了设定的按键按下的最长时间后,认为按键卡死,状态迁移到按键卡死(状态3);

10,在设置抬起事件标志(短按抬起事件标志或者长按抬起事件标志)之后,按键抬起持续时间在小于主程序运行周期(一般为40毫秒)的两倍时间后,即在小于80毫秒时间内,必须清除抬起事件标志,如若在应用层代码中没有人为调用后清除抬起事件标志,则按键处理程序会在规定时间内强制清除抬起事件标志,这就解决了按键抬起标志的干扰问题(一般由按键无效操作的引起)。

3 单键处理逻辑、双键处理逻辑及状态迁移设计

对于单键处理逻辑、双键处理逻辑的综合考虑以及两个按键状态的(简称双键状态)变化,详见图2单键、双键处理以及双键状态迁移图。

关于图2中各个状态的解释说明见下表1 双键状态名称说明。

关于图2中双键状态间的迁移条件的说明见表2双键状态间的迁移条件说明。

结束语

这样我们通过合理设计的单键状态机和双键状态机,可以保证按键每一次采集的准确性和有效性,同时也要提高按键的抗干扰能力,最终达到解决组合按键功能扩展的目的,极大地扩展了多个按键间逻辑组合的可能性,使之能用最少的按键实现最多的逻辑功能,这在目前公司的产品中已得到非常好的运用,使用效果良好。

参考文献:

[1] 何剑宇,刘兢兢.有限状态机建模在嵌入式按键设计中的应用[J].沈阳师范大学学报:自然科学版,2012,30(2):168-171.

[2] 唐飞,查长理.基于有限状态机的STM32系统按键识别方法[J].长春工业大学学报:自然科学版,2013,34(2):160-164.

(作者单位:太原航空仪表有限公司 显示技术研究所)

猜你喜欢

抗干扰按键
非触勿动 秒治键盘误触
熟悉的犬
舰载雷达面临的电子对抗威胁及防范措施分析
变频器控制回路抗干扰措施及调试故障处理
未来的笔
异步电动机节能控制方法及抗干扰技术
其实真的很简单教你轻松关闭WP8.1手机按键灯
计算器
按键消抖电路瞬态分析和设计