【发布时间】:2016-12-22 02:26:01
【问题描述】:
在挖掘 HID 报告时,我在 USB HID 设备中遇到了一个奇怪的问题。我正在实现一个 HID 类设备,并且我的程序基于 Keil 提供的 HID USB 程序。该项目中的一些代码已更改,并且在 32 字节输入和 32 字节输出报告中似乎工作正常。不知何故,经过数千次数据传输,Endpoint 1 out 会挂起并成为一个坏管道。然后我在google上搜索了一些技巧,一个主题提醒我,我们应该在发送一个与您在报告描述中定义的数据包长度匹配的数据包后编写一个数据长度为零的数据包。但这对我不起作用。然后我在收到一个输出数据包后将数据长度为零写入控制管道,神奇的是,它起作用了!千万次传输永远不会挂!
这是我的问题:为什么在将数据长度为零写入控制管道后它会起作用。输出管道中传输的数据应该与控制管道中的数据没有关系。这让我很困惑!
【问题讨论】:
-
请参阅:How to Ask,请显示minimal reproducible example。在询问之前,您甚至都懒得完成 2 分钟的实地考察。