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.

[参考译文] CCS/TM4C1294NCPDT:为 USB HID 报告描述符创建自定义报告 ID#39

Guru**** 2534260 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/923660/ccs-tm4c1294ncpdt-creating-custom-report-id-s-for-usb-hid-report-descriptor

器件型号:TM4C1294NCPDT

工具/软件:Code Composer Studio

为了澄清、我将我的代码基于 TivaWare 库中名为 USB_DEV_keyboard 的示例、他们从该库中将键盘连接到 Tiva 器件。 此操作经过修改、可与供应商使用页面配合使用、并作为主机连接到 PC。

我目前正在尝试创建一个特定的 HID 供应商使用页面、以将我的控制器连接到我的 PC。 两者之间的连接是可以的、但是、只要我想指定不同的报告 ID、代码的发送和接收功能就根本不起作用。 如果我没有指定任何报告 ID (或只是从报告描述符中注释),它就可以完全正常工作。 我想知道我的报告描述或任何其他描述中是否有问题。 或者、对于不支持 USB_dev_keyboard 示例中多个报告 ID 的代码的基础层、这是否是一个问题。

下面是我正在使用的代码:

e2e.ti.com/.../7853.usb_5F00_dev_5F00_keyboard.zip

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

    您好!

     我通常不是 USB 专家、HID 报告描述符也不是、因此我不确定在这里可以提供多少帮助。 我将您的自定义 报告描述符与 TivaWare 提供的默认描述符进行比较、并看到相当大的差异。 如果您打算创建自己的自定义报告描述符、我建议您一次创建一个或几个描述符条目、而不是进行剧烈的更改。 我还找到了一些链接、其中包含有关如何创建 HID 键盘报告描述符的示例。 希望他们能提供一些指导。 请与社区分享您认为对寻求相同解决方案的人有益的内容。

    https://www.ti.com/lit/an/slaa514/slaa514.pdf?ts=1594928301422&ref_url=https%253A%252F%252Fwww.google.com%252F

    https://www.silabs.com/documents/public/application-notes/AN249.pdf

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

    您好、Charles、

    感谢您的反馈、但如您所示、左侧的报告描述符确实起作用(这是我的代码中的描述符)。 只有当我取消注释报告 ID 时、问题才存在。 当我尝试实施报告标识时、代码的发送和接收功能似乎停止工作。

    这两个描述符之间的差异不应影响、因为我们告诉主机发送的报告将如所示。 我认为描述符也是正确的。 我拥有的任何更新肯定会更新此主题。

    谢谢、

    Alex

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

    尊敬的 Alex:

     感谢您尝试调查并与我们分享您的发现。 我找到了这篇关于报告 ID 的文章。 请仔细查看、您也可以自行搜索报告 ID。 如果您只有一个报告要发送到主机、我不确定您的描述符中是否真的需要报告 ID。 换言之、如果您有多个报告、您将使用报告 ID 来区分报告。 也许我的解释是错误的,但我希望这篇文章能为您提供帮助。

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

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

    我发现另一篇文章与您的问题类似。 虽然它用于不同的器件、但我认为解决方案应该是独立的。 尝试一下、查看是否解决了您的问题。  

    https://www.microchip.com/forums/m1001939.aspx

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

    您好、Charles、

    感谢您的上一篇帖子。 我终于解决了这个问题。 我从 PC 向微控制器发送了一份报告、发现在我声明器件端的报告 ID 后、数据包的总长度变为65字节。 该代码仅用于在接收到任何数量的数据时查找64字节、这就是我不断获取错误代码的原因。 既然我已经将接收和发送函数都计算在内、那么现在一切都非常顺利。

    谢谢、

    Alex

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

    很高兴您的问题得到解决。  

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

    [引用用户="Charles Tsaa"]

    我发现另一篇文章与您的问题类似。 虽然它用于不同的器件、但我认为解决方案应该是独立的。 尝试一下、查看是否解决了您的问题。  

    https://www.microchip.com/forums/m1001939.aspx

    [/报价]

    只需注意报告 ID。 许多模块之前、我开发了基于 TAS1020B 的 USB 音频产品。 产品根本没有任何前面板控件,因此必须从计算机发送所有增益和其他设置。 我在产品中使用了 HID 接口(除了音频流和音频控制接口)来发送消息、这些消息设置通道增益、启用幻象电源、还提供了固件更新功能。 (DFU 需要自定义类、更糟糕的是自定义主机驱动程序。) HID 接口利用报告 ID 来区分功能控件。

    报告 ID 是 HID 类的一个非常方便的功能!

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

    尊敬的 Andy:

     感谢您的参与。 看起来您有很多 USB 体验、我们可以在将来为您提供建议。 :-)

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

    [引用用户="Charles Tsaa"]

    尊敬的 Andy:

     感谢您的参与。 看起来您有很多 USB 体验、我们可以在将来为您提供建议。 :-)

    [/报价]
    很高兴为您提供帮助。 在我对 Tiva USB 库进行分类后、我将会更加有帮助。 我可能也会变得非常严重...