个人博客:CSDN “老子姓李!”
参考教程链接:http://t.csdn.cn/W9rIy
引言:
在日常生活中,有不少按键长按、短按的应用实例。比如:一个台灯,短按切换亮度,长按关机。
问题来了,单片机是如何区分按键的短按和长按的呢?
本程序使用定时器,运用状态机的思想,实现了单按键的单击长按操作。
代码简洁规范,可读性强,移植性强。
实验器材:
自制开发板,STM32F03C8T6平台
实验目的:
学习定时器中断、按键使用。实现单击双击长按操作
硬件资源:
按键(PA0,也称之为WK_UP)
定时器3
串口1,用于打印输出
按键事件:
长按事件:任何大于 1秒 按下并释放事件(不支持连按,需连按,稍微修改状态机即可)
单击事件:按下时间不超过 1秒 且 释放后 500ms 内无再次按下的操作
双击事件:俩次短按时间间隔小于500ms,俩次短按操
本程序只供学习使用,未经作者许可,不得用于其它任何用途
感谢大家的阅读与下载,码字开源分享不易,麻烦给个免费的赞。
如果有帮助的,请不要吝啬三连。点赞评论收藏,让更多人看到有用的内容。
本博客作抛砖引玉,欢迎大家评论交流。
1