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.

[参考译文] EK-TM4C123GXL:USB 音频设备:由于 bLength 不正确而枚举失败

Guru**** 2480925 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/699472/ek-tm4c123gxl-usb-audio-device-enumeration-fails-due-to-incorrect-blength

器件型号:EK-TM4C123GXL

您好!

在 USB 模式下、我设法使 Tiva 出现在器件管理器中、但它未被枚举。 我以前用 Windows USB 调试器来查看正在发生的情况、很明显、这是由于 bLength 器件描述符长度错误。 我对此有点困惑、因为当我搜索正式的 Tiva USB 库文档时、在"通用函数"章节中提到了 bLength、但当我实际搜索工作示例时、bLength 不会出现在任何位置。 有什么关于如何继续的想法?

此致、

1月

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

    我们的 usblib 中的 usbaudio.h 文件具有一组用于不同音频描述符的结构、其中每个结构都在结构定义中包含 bLength。

    主机音频的 usbhaudio.c 文件使用的结构非常少、因此请检查您是否正在为音频设备执行相同的操作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    早上好、

    我现在知道、usbdaudio.c 文件不是空的! D:这是一个很难破解的地方! 因此我尝试搜索 StellarisWare USB 库包、由于它不可访问、我只找到它的 GitHub 版本。 我将使用这个  。 如果您对此有任何意见、请告诉我、非常感谢您的宝贵帮助。

    此致、

    Jan Polivka

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

    您好 Jan、

    最新的 TivaWare 中仍包含 usbdaudio.c 和.h 文件、因此我不确定为什么需要从 StellarisWare 中提取文件。

    此外、我还深入探讨了 usbdaudio.c 文件、我认为问题可能是 USB 音频设备描述符无法通过 USB 正确发送。

    如果您看 一下 g_pui8AudioDeviceDescriptor、它被称为器件描述符、长度为18、如所述。 虽然这些注释没有注意到它是 bLength、但我看不到它是怎么不能的。 因此、问题可能是 TM4C 在 枚举时不会将 g_pui8AudioDeviceDescriptor 中的数据发送到 PC。

    现在、我再仔细看一下原始帖子中的图像、可以清楚地看到其他字节也都是零、因此它只是没有发送数据、bLength 本身也不存在故障。 请查看 您的器件代码如何利用 g_pui8AudioDeviceDescriptor、并查看您是否可以找到该描述符中包含的数据未正确传输到 PC 的原因。

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

    您好、Jacob、

    我的.c 文件因某种原因为空、我认为我没有手动安装 USB 库、但现在已经修复了。

    我想我已经成功地为批量设备重新创建了问题。 至少我有一些要保留的内容、因此我将弄清这一点、看看它是否对音频示例有所帮助。

    此致、

    1月

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此外、将示例大容量器件与我的大容量设计版本进行比较、我完全缺少 UART (用途方面)。 没有正确枚举的原因是没有用于传递信息的协议(UART)、这是一种有效的理论吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Jan、

    无丢失的 UART 不应影响枚举。 UART 配置的理念是从 LaunchPad 向 PC 发送消息(有时也会接收消息)、虽然这种情况是通过 LaunchPad ICDI 通过 USB 发生的、但它对枚举没有影响、因此您无需担心。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    早上好、Ralph、

    您说得对、不需要 UART。 我现在所做的是将大容量器件的所有 DIY 文件复制到示例大容量器件中、从而删除提供的代码。 好的、Tiva 得到了正确的枚举! 现在、我觉得真正的问题是库链接、所以这就是我现在要研究的问题。

    此致、

    1月

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我查找了链接、但没有查看、尝试重构示例闪烁、链接了所有内容、示例闪烁起作用。 我的大容量器件也是如此、但它没有帮助。 有一点令人愤怒的事实是编译器不会发出任何警告或错误。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Jan、

    您是否正在尝试创建自己的 CCS 项目? 如果是、为什么不只重复使用 TivaWare 示例、根据您的用途对其进行重命名并添加到您自己的文件中等? 这是大多数自定义项目的方式、比尝试正确链接所需的所有内容要容易得多。

    尽管缺少警告或错误有点奇怪... 您使用的是 CCS 吗? 如果未正确链接某些内容、我会遇到编译错误、因为无法找到 API 或无法访问头文件等
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    早上好、

    我最初尝试在批量器件示例基础上进行构建(没有音频器件示例、因此我无法从此处开始)、然后我遇到了我之前描述的问题(bLength 问题)。 我决定重新创建大容量器件示例、也许我会学到一些有用的东西。 代码本身正常工作、但不在新项目中、我将附加链接内容和路径的快照、看看您是否可以找到问题? 如果有帮助、我可以发布项目文件夹。

    此致、

    1月

    e2e.ti.com/.../Jan_5F00_Polivka_5F00_TIva.zip

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

    您尝试通过"Linked Resources"选项链接的文件之一是 usbdbulk.c 文件。 我不同意这样做、因为您只是在一个绝对路径中链接到一个 usblib 文件、而不是整个 usblib。 您为什么要采取这一步骤? 如果要解决未找到功能的问题、我认为您没有解决根本原因。

    此外、我不明白为什么 TivaWare 库有如此多的链接。 链接 C:\ti\TivaWare_C_Series-2.1.4.178是合理的、但我不会为 usblib 和 driverlib 添加其他包含路径。 相反、只需链接 C:\ti\TivaWare_C_Series-2.1.4.178、然后使用我们的方法通过 #include 调用( 例如、#include "usblib/device/usbdbbbbbbbbbulk.h")导航文件夹。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Ralph、

    我完全同意,这是一个坏主意。 我最初只包含 TivaWare 文件夹、但它没有帮助、因此我尝试添加更多内容、看看它是否有用、因为我没有任何东西会丢失。

    此致、

    1月

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

    我将撤消这些步骤、并删除 usbdbulk.c 的绝对路径、然后如果遇到任何构建错误、请发布这些错误、否则无法提供帮助。

    我仍然认为、您获得成功的最佳方法是重命名 TivaWare 示例并根据您的需求进行更改、这样所有链接都是正确的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我确实更改了它、它没有影响、没有任何错误。 很遗憾,我现在不能再花时间来讨论这一点,很抱歉,我浪费了你的时间。

    此致、
    1月