[其他ST产品] Stm32解决按键长按与短按

[复制链接]
4143|64
uiint 发表于 2023-5-5 22:15 | 显示全部楼层
如何判断这个的时间阈值呢              
kmzuaz 发表于 2023-5-5 22:32 | 显示全部楼层
中断方式可以通过将按键连接至GPIO外部中断线来实现。当按键被按下时,会触发该GPIO的外部中断。在中断处理函数中可以设置一个定时器来延迟一段时间,再次检测按键状态。如果按键一直处于按下状态,则可以将其视为连续按键。
febgxu 发表于 2023-5-6 00:12 | 显示全部楼层
用定时器中断去扫描按键所在IO口的电平,进行计次处理。
10299823 发表于 2023-5-7 14:58 | 显示全部楼层
怎么跟调用的函数相结合呢              
51xlf 发表于 2023-5-7 15:37 | 显示全部楼层
利用状态机实现按键的长短按和双击  
tifmill 发表于 2023-5-7 16:10 | 显示全部楼层
stm32 按键处理:单击、连击、长按 都可以am
usysm 发表于 2023-5-7 16:19 | 显示全部楼层
需要考虑去抖动问题。可以通过软件去抖动或硬件去抖动的方式来解决。
i1mcu 发表于 2023-5-7 17:04 | 显示全部楼层
有可以移植的库函数使用。
              
pl202 发表于 2023-5-7 17:16 | 显示全部楼层
如果是超时怎么判断呢              
Undshing 发表于 2023-5-9 23:22 | 显示全部楼层
通过轮询或中断的方式来实现。
wenfen 发表于 2023-5-10 21:02 | 显示全部楼层
有全源代码吗?我移植没成功
chenho 发表于 2023-5-10 21:04 | 显示全部楼层
程序里最好不要有HAL_Delay
zhanglli 发表于 2023-5-10 21:05 | 显示全部楼层
轮询方式需要在主循环中不断地检测按键状态,当检测到按键被按下后,可以设置一个定时器来延迟一段时间
chenho 发表于 2023-5-10 21:07 | 显示全部楼层
再次检测按键状态。如果按键一直处于按下状态,则可以将其视为连续按键。
zhuhuis 发表于 2023-5-10 21:08 | 显示全部楼层
在STM32中,实现连续按键可以通过轮询或中断的方式来实现。
hanwe 发表于 2023-5-10 21:10 | 显示全部楼层
这个是使用的定时器判断的吗
chenho 发表于 2023-5-10 21:11 | 显示全部楼层
这个长按和端按的界定是什么              
chenho 发表于 2023-5-10 21:14 | 显示全部楼层
STM32如何实现连续按键              
songqian17 发表于 2023-5-10 21:16 | 显示全部楼层
按键松开, 判断是短按还是长按, 如果长按时间大于设定的时间(根据key.h的宏定义进行修改),返回长按数值 如果小于设定时间,说明是短按,返回短按数值
llljh 发表于 2023-5-10 21:18 | 显示全部楼层

如何判断这个的时间阈值呢              
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部