新闻聚合网站怎么做,android 网站开发,建设企业网站地址,免费学校网站模板html-------------------Step 1---------------------
如题#xff0c;使用 libusb 对 hid 类设备进行控制传输的时候#xff0c;有时会遇到此错误#xff0c;但是实际上传输是成功的#xff0c;用usb分析仪等工具和程序中验证#xff0c;比如发送数据成功后#xff0c;让设…-------------------Step 1---------------------
如题使用 libusb 对 hid 类设备进行控制传输的时候有时会遇到此错误但是实际上传输是成功的用usb分析仪等工具和程序中验证比如发送数据成功后让设备返回给主机主机读取数据后验证数据正确性。由此看来该错误是内核返回出现了错误并不是指实际的通讯异常。
现在在使用其他HID类设备在进行测试发现有些HID类设备不会出现类似的报错因此写程序模拟该设备通讯过程尝试与主机通讯依然返回错误值 -32, Broken pipe。该原因还在跟踪待续~
-------------------Step 2---------------------
经过验证与跟踪发现是由于主机设备回复的数据包出错导致的回复的数据包PID没有与前面的输出过程交替造成的。也即正常数据传输过程中数据包是 DATA0 和 DATA1 不停交替的如果回复的数据包PID未交替那么主机认为没有正确响应因此返回了之前的错误码 -32, Broken pipe。更改设备程序回复交替 PID问题解决。
如果遇到了不是该情况可以给我邮件或者评论。遍历了国内外大小论坛真正解决问题的办法很少遇到此问题一起进行探讨研究。有问题给我留言吧~:-D