【问题标题】:USB Get Descriptor request of length zero长度为零的 USB 获取描述符请求
【发布时间】:2021-08-20 14:07:03
【问题描述】:

我有一个有线 USB 鼠标,除了这个问题外,它功能齐全。问题是当我发送一个标准的 Get Descriptor 请求来读取产品字符串时,鼠标和 PC 之间的通信线路冻结但鼠标仍然正常工作(这意味着我不能再发送命令,直到我拔掉并插入鼠标)。

只有在读取产品字符串的请求长度为零时才会发生这种情况,否则我看不到问题。你以前见过这个问题吗?是什么原因造成的?

我使用的是 Windows 10

【问题讨论】:

  • 鼠标可能错误地执行 USB 协议(或者您的请求可能无效)并发送不完整的响应(或根本没有响应)。如果是这样,PC(您使用的是 Windows 吗?)将等待丢失的响应,并且不接受此特定端点上的任何进一步请求。
  • 我使用的是 Windows 10。请求不是无效的,因为我有另一个鼠标,它可以使用零长度获取描述符。 (鼠标使用不同的代码和IC)
  • USB 文档是怎么说的?其他设备也可能会因不稳定而错误地处理非法请求。

标签: c usb


【解决方案1】:

请求字符串描述符并将请求的长度设置为 0 是不寻常的事情,并且可能没有经过鼠标固件开发人员的测试,因此固件会有一些导致其崩溃的错误也就不足为奇了.您可能应该避免提出此类请求。我不确定您使用该请求的目的是什么,但您可能会想出另一种方法来完成它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-28
    • 2014-06-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多