stm32按键 长按 短按 函数 二

在学习过程中,遇到了要使用很多个按键的情况,(没有同时按下的处理,没有用矩阵键盘)。一增加一个新按键,需要改动的地方太多,在网上看了一篇博客

https://blog.youkuaiyun.com/jiejiemcu/article/details/83097992

觉得它使用的方法不错,就进行学习研究,移植到stm32单片机上。这种编程思想值得学习,做个小总结。

typedef struct button
{
	/* 下面是一个函数指针,指向判断按键手否按下的函数 */
  uint8_t (*Read_Button_Level)(void); /* 读取按键电平函数,需要用户实现 */
	 
	char Name[BTN_NAME_MAX];
	uint8_t Button_State   :      4;          /* 按键当前状态(按下还是弹起) */
	uint8_t Button_Last_State :   4;    	  /* 上一次的按键状态,用于判断双击 */
	uint8_t Button_Trigger_Level: 2;          /* 按键触发电平 */
	uint8_t Button_Last_Level:    2;          /* 按键当前电平 */
  uint8_t Button_Trigger_Event;               /* 按键触发事件,单击,双击,长按等 */
	
	Button_CallBack CallBack_Function[number_of_event];
	
	uint8_t Button_Cycle;                      /* 连续按键周期 */
	uint8_t Timer_Count;                       /* 计时 */
	uint8_t Debounce_Time;                     /* 消抖时间 */
	
	uint8_t
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值