关于CH376的缓冲区大小问题

最近在研究uart连接方式下CH376获取usb键盘传输的数据

在获取设备描述符时返回了0x17,查阅如下:

#define USB_INT_BUF_OVER    0x17            /* USB传输的数据有误或者数据太多缓冲区溢出 */

然后用Bus Hound抓取的通讯过程中发现,本键盘的设备描述符长度为66

于是换了一个键盘,设备描述符长度为59,此时返回0x14,即

#define USB_INT_SUCCESS     0x14            /* USB事务或者传输操作成功 */

想问一下是不是CH376的缓冲区大小问题,如果是缓冲区过小造成的,那么如何解决这一问题

您好:

设备描述符的长度应该没有这么长,如果是获取描述符的话,每次CH376从设备获取8字节的描述符,分多次把描述符读取完。您可以检查一下以下几点。

获取描述符的标准请求是否正确,可以用电脑的Bus Hound软件对比。

每次获取描述符是否有翻转令牌,获取的数据是否正确。

检查一下主控端留的描述符缓冲区大小是否足够。


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