硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4724|回复: 14
收起左侧

[有问必答] V4按键驱动bsp_key.c出现一个问题,长按会先进入一次短按

[复制链接]

44

主题

562

回帖

699

积分

金牌会员

积分
699
发表于 2018-12-7 09:45:36 | 显示全部楼层 |阅读模式
STM32F103使用V4板按键驱动bsp_key.c出现一个问题,调试时发现,长按按键的时候会先进入一次短按,再次运行后才进入了长按。使用的例程是V4-301_FreeRTOS实验_串口调试方法,硬汉大师你看一下你那里会不会有这样的情况,

key.png

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106913
QQ
发表于 2018-12-7 11:20:38 | 显示全部楼层
这个是标准的PC键盘驱动。

如果要实现长按和短按的识别,在检测到按下消息后,获取当前的时间基准,然后松手消息的时候再获取 一次时间基准,差值作为区分即可。
回复

使用道具 举报

1

主题

49

回帖

52

积分

初级会员

积分
52
发表于 2019-6-3 09:51:01 | 显示全部楼层
请问这个问题怎么解决呢 ?我也遇到这个问题,就是我要用组合按键的时候,单次按键也会被触发,很头疼
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106913
QQ
发表于 2019-6-3 09:52:59 | 显示全部楼层
iamarookie 发表于 2019-6-3 09:51
请问这个问题怎么解决呢 ?我也遇到这个问题,就是我要用组合按键的时候,单次按键也会被触发,很头疼

参考V7移植新版组合键方案即可,组合键使用也比较好用了,非常舒服

V7新版的按键FIFO驱动扩展和移植更简单,组合键也更好用
http://www.armbbs.cn/forum.php?m ... 1794&fromuid=58
(出处: 安富莱电子论坛)
回复

使用道具 举报

1

主题

49

回帖

52

积分

初级会员

积分
52
发表于 2019-6-3 11:07:59 | 显示全部楼层
谢谢老大,但是还有一个问题,就是我按组合键之后,两个按键不是同时释放的话还是触发单按键的事件
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106913
QQ
发表于 2019-6-3 11:09:31 | 显示全部楼层
iamarookie 发表于 2019-6-3 11:07
谢谢老大,但是还有一个问题,就是我按组合键之后,两个按键不是同时释放的话还是触发单按键的事件

使用新方案即可,都解决了
回复

使用道具 举报

1

主题

49

回帖

52

积分

初级会员

积分
52
发表于 2019-6-3 13:06:14 | 显示全部楼层
采用了新方案可以区别单按键和组合按键了,但是如果组合按键不是同时释放的话,又会触发单按键事件,就是先松掉一个按键再松另外一个按键,就会出现触发单键的情况
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106913
QQ
发表于 2019-6-3 13:15:00 | 显示全部楼层
iamarookie 发表于 2019-6-3 13:06
采用了新方案可以区别单按键和组合按键了,但是如果组合按键不是同时释放的话,又会触发单按键事件,就是先 ...

这就简单多了,检测到同时按下后,开启一个软件定时器,在一定时间内的单按都不处理。
回复

使用道具 举报

1

主题

49

回帖

52

积分

初级会员

积分
52
发表于 2019-6-3 13:52:45 | 显示全部楼层
好的 ,还有最后一个问题,就是长按的时候会先触发一次短按
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106913
QQ
发表于 2019-6-3 13:56:47 | 显示全部楼层
iamarookie 发表于 2019-6-3 13:52
好的 ,还有最后一个问题,就是长按的时候会先触发一次短按

一样,二楼已经回复
回复

使用道具 举报

1

主题

49

回帖

52

积分

初级会员

积分
52
发表于 2019-6-5 10:47:03 | 显示全部楼层
非常感谢老大的指导,这边已经问题全部解决了。能够辨别长按和短按,单键和组合键,长按的时候不会触发短按
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106913
QQ
发表于 2019-6-5 11:26:07 | 显示全部楼层
iamarookie 发表于 2019-6-5 10:47
非常感谢老大的指导,这边已经问题全部解决了。能够辨别长按和短按,单键和组合键,长按的时候不会触发短按

回复

使用道具 举报

3

主题

36

回帖

45

积分

新手上路

积分
45
发表于 2019-11-25 11:00:04 | 显示全部楼层
iamarookie 发表于 2019-6-5 10:47
非常感谢老大的指导,这边已经问题全部解决了。能够辨别长按和短按,单键和组合键,长按的时候不会触发短按

你好 你是怎么解决长按有触发短按的
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2019-11-26 19:13:13 | 显示全部楼层
TK.Minh 发表于 2019-11-25 11:00
你好 你是怎么解决长按有触发短按的

可以优先检查长按,如果时间没到松开了就是短按,我之前是这么改的,有帖子可以看下
回复

使用道具 举报

3

主题

36

回帖

45

积分

新手上路

积分
45
发表于 2019-12-11 10:47:24 | 显示全部楼层
夜乄謌 发表于 2019-11-26 19:13
可以优先检查长按,如果时间没到松开了就是短按,我之前是这么改的,有帖子可以看下

有实例代码麽  求教
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-9 19:04 , Processed in 0.230779 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表