This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TM4C1233H6PZ:HID 报告大小问题

Guru**** 1800230 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/942013/tm4c1233h6pz-issues-with-hid-report-sizes

器件型号:TM4C1233H6PZ

您好!

我正在创建一个定制 HID 设备、并且我遇到了报告描述符的问题。  我定义了3个报告:1个输入报告和2个输出报告。  由于两个输出报告的报告计数不同、这两个输出报告似乎相互产生了问题。  我用于与之通信的 C# GUI 始终显示报告2错误、但报告3工作正常。   

现在捕获是、如果我增加报告2的报告计数以匹配报告3的报告计数、则报告工作正常。   

我认为由于某种原因、USB 库仅考虑1个特定报告计数(最高报告计数)。  是这样吗?

附件是我的报告描述符

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Daryl:

     您能否显示报告描述符? 您上次未成功上传描述符。  

     报告2与报告3有何不同?

     您的报告2的报告大小是否小于一个字节? 报告3的报告计数可能是多个字节、这也是它正常工作的原因。

     您的报告描述符数据包有多大? 您的主机是否会考虑正确的描述符大小?

     我不是 USB 专家。 我们的 USB 专家正在度假。 因此、如果我无法帮助您解决问题、我们需要等到专家回来。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Charles、

    这是报告描述符。

    报告2和报告3仅因报告 ID 和报告计数而有所不同。  我们还将研究 C# USB 代码、以查看是否存在任何问题、但假设我们的问题来自 MCU 端、因为编码涉及的更广泛。  

    因此、查看输出报告描述符、只有报告计数最高的输出报告描述符(在本例中为报告 ID 3)有效。  如果我将报告 ID 2上的报告计数调整为更大、则报告2是唯一有效的输出报告。  当共享相同的报告计数时、它们都可以工作。

    谢谢、

    Daryl  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Daryl:

     我肯定不是 HID 报告描述符结构的专家。 描述符中有一件我很好奇的事情。 为什么不为每个报告指定报告大小? 您只有报告计数(例如64、5、6),但没有报告大小。  

     我在下面的文章中找到了一些可能对您有所帮助的信息。 请看一下。  

      http://who-t.blogspot.com/2018/12/understanding-hid-report-descriptors.html

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Charles、

    我在三个嵌套集合之外包含了报告大小。  我认为,把报告的篇幅放在那里,就会为每一份报告创造一个全球报告的篇幅。  我现在看一下您链接的文章。

    谢谢、

    Daryl

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Daryl:

     虽然我不知道导致您问题的原因、但我发现此帖子也可能有所帮助。 尽管它用于不同的 MCU、但我相信报告描述符结构与 MCU 平台无关。  

     以下是另一篇文章、也可能有助于海报在自定义 HID 描述符报告出现问题时提供帮助。 问题是由于插入了报告 ID、增加了主机未意识到的数据包大小。  

    https://e2e.ti.com/support/microcontrollers/other/f/908/t/923660?tisearch=e2e-sitesearch&keymatch=descriptor%20report

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Charles、  

    您发布的 E2E 链接实际上是我在首次处理此 HID 项目时发布的一个实习生链接。  我们相信我们已经通过报告 ID 解决了问题。  这个问题似乎直接与报告计数有关。

    谢谢、

    Daryl

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Charles、

    仍然不能很幸运地解决此问题、很难浏览库以尝试解码任何 USB 问题。  USB 专家度假有机会吗?

    谢谢、

    Daryl  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Daryl、

    我对 HID 报告计数并不比 Charles 更熟悉、而 是查看您发布的内容和问题描述、您能否共享这两个报告(ReportCount (5)和 ReportCount (6)))的帐户数据? 我想知道这些是如何构建的、有什么不同。

    您说过、如果您将两者都更改为 ReportCount (6)、它可以正常工作、这是正确的吗?