CH375B连接键盘,按下第一个按键后,程序发出一个数据后,不再反应

我下载的推荐的键、鼠例程,修改(我的CPU为aduc847)后,可以正确连接USB鼠标,且读取数据正常;连接USB键盘:键盘灯可点亮。不按任何键,键盘灯一直亮;按下任何键,有一定时间的延时后,键盘灯熄灭,单片机串口输出数据:c4 12 0d 21 77 09 12 1d 后,程序、键盘均不再有任何反应。仅单片机复位后,键盘任无反应。拔出键盘,单片机复位,接入键盘,可重复上诉过程。望高人指点12,谢谢!

把键盘的配置描述符 贴出来看看。。


我读取的配置描述符: Data Phase Description ------------------------------------------------------------------ ----- ---------------- 80 06 00 01 00 00 12 00 CTL GET DESCRIPTOR 12 00 00 00 LEN 18 12 01 10 01 00 00 00 08 4f 1c 02 00 10 01 01 02 00 01 DO ........O....... 80 06 00 02 00 00 09 00 CTL GET DESCRIPTOR 09 00 00 00 LEN 9 09 02 22 00 01 01 00 a0 31 DO ..".....1 80 06 00 02 00 00 22 00 CTL GET DESCRIPTOR 22 00 00 00 LEN 34 09 02 22 00 01 01 00 a0 31 09 04 00 00 01 03 01 01 00 09 21 DO ..".....1....... 10 01 00 01 22 36 00 07 05 81 03 08 00 09 01 00 00 00 00 00 CTL SET CONFIG 21 0a 00 00 00 00 00 00 CTL SET IDLE 81 06 00 22 00 00 76 00 CTL GET DESCRIPTOR 36 00 00 00 LEN 54 05 01 09 06 a1 01 05 08 19 01 29 03 15 00 25 01 75 01 95 03 DI ..........)...%. 91 02 95 05 91 01 05 07 19 e0 29 e7 21 09 00 02 00 00 01 00 CTL SET REPORT 01 00 00 00 LEN 1 01 DO . 08 00 00 00 LEN 8 00 00 00 00 00 00 00 00 DI ........


从配置描述符来看,就是一个普通的键盘,确认枚举的各个过程是不是都成功了?也可以换个键盘试一下 参考例程:http://wch.cn/bbs/View.asp?S=101&I=19463


按给定例程修改后,可正常完成键盘枚举(串口监视为成功),但操作键盘,则键盘等一段时间后,指示灯熄灭,输出一组随机数据。在操作键盘,键盘无反应。间隔一定时间后,串口可输出一组相同的数据。


你看下你程序里面获取键盘数据的程序里面的端点号是多少?你的这个键盘的端点号是0X01,还有就是对于键盘的话,SET-REPORT这个命令是必须要发下去的。


"SET-REPORT"命令我已发送;键盘的端点号,从那里可以看到。谢谢!


你把获取键盘数据的程序贴出来看下,在获取数据的地方就有数据。


是那个"0x81"或"0x82"吗?但按手册,端口应该是"0x01"或"0x02"呀?


最高位表示端点的方向,为1表示上传,为0表示下传,用的时候不需要考虑这个位


哈哈!我将键盘的端点号指向哪个"0x81",一切都OK了。谢谢楼上的帮助。 另外,键盘、鼠标连接断开检测,如何做?我用过CH375的连接测试命令,但检测好像有问题:不是太慢、就是检测不可靠。


断开或连接,CH375都会产生中断,另外,就是用TEST_CONNECT,这个命令一般2us就能完成了,不会很慢,更不会不可靠,单独做个测试程序验证一下


那肯定是我的程序问题了。我在试试。只是我的程序,是在主程序循环(1ms一次)中使用TEST_CONNECT命令(关中断使用),要等也许10秒以上,才能检测到,不知何故?我在学习学习。谢谢!


鼠标可以读到数据 键盘读不到数据 并且返回的代码也不对 这是怎么回事


只有登录才能回复,可以选择微信账号登录