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.

[参考译文] TM4C1237H6PZ:在使用 USB-CDC 类将数据传输到超级终端时遇到问题。

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/635527/tm4c1237h6pz-facing-issues-while-using-usb-cdc-class-for-transmission-of-data-to-hyper-terminal

器件型号:TM4C1237H6PZ

您好!

我使用 TM4C1237H6PZ 通过 USB 电缆(作为笔记本电脑上的虚拟 COM 端口)连续发送数据。 我将我的机器用于测试、并将数据传输到超级终端。 直到第二天我开始从笔记本电脑上断开并连接 USB 电缆以进行测试时、它仍然工作正常。 根据我的观察结果、当电缆被拉出并重新插入时、超级终端在从超级终端断开并连接连接连接后能够接收数据。 但在几次试验之后、当机器不再向超级终端传输数据时、便会出现这种情况。 通常、当我断开与超级终端的连接时、我会获取事件为 USBD_CDC_EVENT_SET_CONTRAL_LINE_STATE。 当我拔出电缆时、我得到事件 USB_EVENT_SUSPEND。 当我重新连接会话时、我收到以下事件:

USBD_CDC_EVENT_GET_LINE_Coding

USBD_CDC_EVENT_GET_LINE_Coding

USBD_CDC_EVENT_GET_LINE_Coding

USBD_CDC_EVENT_GET_LINE_Coding

USBD_CDC_EVENT_SET_LINE_Coding

USBD_CDC_EVENT_GET_LINE_Coding

USBD_CDC_EVENT_SET_CONTINL_LINE_STATE

然后连接良好。

但在这种错误情况下、当我从超级终端断开连接时、我没有遇到任何事件。 当我再次连接时、我获得了6次 USBD_CDC_EVENT_GET_LINE_Coding 事件、然后没有发生任何情况、连接也没有建立。 然后、我重新启动了超级终端应用程序、因为我的超级终端通信不正常。 仍然是同一个问题。 然后、我重新启动了器件、然后器件工作正常、并连接了正确的事件。 请建议一些调试方法。 是否有任何缓冲区溢出或可能发生的任何其他情况?

谢谢、

那曼

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

    您使用的是自定义固件还是 TivaWare 中的 USB_DEV_serial 示例?

    如果使用您自己的代码、您在 USB 连接断开时使用的过程是什么? 您可以沿着这些行发布的任何源代码都很有用。

    此外、在调试过程中、通常当问题达到详细程度时、您需要获取 USB 分析器来调查数据包的来回流动。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Ralph、

    感谢您的回复。 问题现已解决。 当我拔出 USB 电缆时、USBbuffer 已满。 随着我进一步调试、当缓冲区已满并且我重新连接了器件时、USB_EVENT_TX_COMPLETE 事件也停止重复。 因此、当我重新连接电缆并获取事件 USBD_CDC_EVENT_GET_LINE_CDEG_CING_LINE_Coding 时、我使用 USBBufferFlush ()。

    我正在使用的代码取自 USB_DEV_serial 示例、但修改后的代码与使用的 UART 端口 UART7而非 UART0略有不同、并且进行了更多更改。

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

    可以帮我解决这个问题吗? 为什么 USB 在 USBBuffer 已满后重新连接电缆后不传输串行数据? 重新建立连接后、我甚至无法获得事件 USB_EVENT_TX_COMPLETE。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Naman、

    您能否为 USB 控制处理程序发布代码?