usb读卡器问题

[复制链接]
 楼主| chuandaoxy 发表于 2012-1-26 11:24 | 显示全部楼层 |阅读模式
我用usbhid键盘改成id读卡器,解码没问题,但在传送中发现了问题,卡号里有两个连续相同的号码,比如说122356,传到屏幕上发现12356,后来琢磨了一下,是因为
usb键盘去斗延时早成的,如何解决能,我传卡号是这样做的,解码后,把键值传上去
然后马上传8个0,告诉系统键盘弹起,在哪里加个延时呢?
Alex_rcpilot 发表于 2012-1-26 23:11 | 显示全部楼层
听起来不是USB问题而是键盘扫描问题。你用一个变量的值0、1、2、3去代表按键的状态就行了。0表示弹起,1表示按下正在消抖,2表示按下并稳定,3表示松开过程中正在消抖。
0状态下检测到有效电平即转入1状态;
1状态检测到无效电平即转回0状态;
1状态持续n次连续监测到有效电平则认为抖动已经过去,转入2状态,这个瞬间触发一次按键事件(比如发出数字3的值);
2状态下检测到无效电平即转入3状态;
3状态下检测到有效电平即退回2状态;
3状态下持续n次检测到无效电平即认为按键彻底松开并稳定,转入0状态。

要再触发一次按键事件,必须再经历一次完整状态循环。使用这种状态机可以避免误触发,同时不损失响应速率。
Alex_rcpilot 发表于 2012-1-26 23:25 | 显示全部楼层
又看了一眼似乎是HID的DEMO代码里面有自带的消抖,对你的代码产生了影响,若是这种情况,那只能仔细读代码,没别的法子了。
奇缘时间 发表于 2013-5-17 11:22 | 显示全部楼层
我也在做USBHID,当前做时我也遇到这个问题,到现在也没有理解是什么造成的, 我解决的办法是一次上传一个数据(如123456),我上传了次,每次上传完后就发送一个空字符,并且每次上传都会有一小段适时,不知,楼主你现在查找到原因没有,是如何解决?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

855

主题

1044

帖子

4

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