[研电赛技术支持] 请问GD32的键盘按键,按下后,一直发送,是什么问题呀?

[复制链接]
3007|19
 楼主| 虚幻的是灵魂 发表于 2024-4-11 12:52 | 显示全部楼层 |阅读模式
100966176c2d363d1.png 1293866176c509411d.png 打了断点,发现那里代码执行后,就开始疯狂输出,不知道怎么修改,有没有大佬指点以下的,非常感谢。
 楼主| 虚幻的是灵魂 发表于 2024-4-11 15:08 | 显示全部楼层
有没有人可以救一下我的???
 楼主| 虚幻的是灵魂 发表于 2024-4-11 15:12 | 显示全部楼层
顶一下
玄德 发表于 2024-4-11 16:12 | 显示全部楼层
本帖最后由 玄德 于 2024-4-11 17:29 编辑

1、必须检测到按键抬起,再发送。一般是加延时。
2、按键会有抖动,出现的信号不会是标准方波,而是类似于模拟信号的波形,每抖一次,程序就会发送一次。所以要有消抖措施。

评论

@玄德 :感谢,已解决。原来他的代码有问题,改了下源码。  发表于 2024-4-12 17:12
@虚幻的是灵魂 :我不了解你说的文件。按你的情况,驱动文件似乎应当把消抖、延时这些工作都完成才对。  发表于 2024-4-12 15:07
fop_handler.hid_itf_data_process(&hid_keyboard); 这个方法没啥用对矩阵键盘来说  发表于 2024-4-12 14:41
我的是矩阵键盘,请问hid_keyboard_itf.c这个文件怎么修改呀?  发表于 2024-4-12 13:48
trucyw 发表于 2024-4-12 08:31 | 显示全部楼层
应该是去抖
海洋无限 发表于 2024-4-12 12:03 | 显示全部楼层
word_count 定义成static变量试下呢
Annie556 发表于 2024-5-16 16:12 | 显示全部楼层
可能是你的程序没取消呗
Betty996 发表于 2024-5-16 17:18 | 显示全部楼层
你是不是没清除你的缓冲区啊
Carina卡 发表于 2024-5-16 18:21 | 显示全部楼层
正常的,USB是一直需要发数据的,正常是发/0好像,你要发数据就发正常数据
Charlotte夏 发表于 2024-5-16 19:25 | 显示全部楼层
你抓包看看,USB数据都发的啥
Alina艾 发表于 2024-5-16 21:35 | 显示全部楼层
按键抖动是指在按下或释放按键时,由于机械性能等原因,按键会产生短暂的不稳定信号。这可能导致按键被误认为是一直按下的状态。为了解决这个问题,可以在软件中添加按键去抖动的处理,例如通过软件延时或使用硬件去抖动电路
Emily999 发表于 2024-5-16 22:42 | 显示全部楼层
在程序中可能存在逻辑错误,导致按键按下后一直发送信号。这可能是由于按键状态检测的条件判断错误或循环中的逻辑错误等原因引起的。需要仔细检查程序逻辑,确保按键状态的检测和处理正确
Betty1299 发表于 2024-5-17 08:27 | 显示全部楼层
按键的一直发送信号也可能是由于外部硬件问题引起的
Candic12e 发表于 2024-5-17 09:55 | 显示全部楼层
如果按键的接触不良、按键线路短路或接地等问题都可能导致按键一直发送信号。需要检查按键的硬件连接和接触情况,确保按键正常工作
alxd 发表于 2024-5-17 11:23 | 显示全部楼层
USB部分的程序你也要看看,可能是这方面导致的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

118

帖子

2

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