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.

[参考译文] TM4C1237E6PM:当 USB 连接到 Win10计算机时、USB_DEV_serial.c 不再正常工作

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/942022/tm4c1237e6pm-usb_dev_serial-c-no-longer-works-properly-when-usb-connected-to-win10-machine

器件型号:TM4C1237E6PM
主题中讨论的其他器件:EK-TM4C123GXLDK-TM4C123G

我们使用 Tiva 器件、代码中嵌入了为 TI 提供的 USB 接口 USB_dev_serial.c 文件。  当 Win7或 Win10笔记本电脑连接到我们板上的 USB 端口时、这款笔记本电脑已经运行了3年以上。  就在上周、一台用户笔记本电脑升级到 Win10 2004、现在 USB 接口的工作方式有所不同。  另一台运行更新1903的 Win10笔记本电脑已连接、并且它还存在 USB 问题。  在运行更新版本1903的笔记本电脑上、如果电路板和笔记本电脑之间连接了电缆、并且 Tera Term 未运行、则 USB 接口会无限循环挂起、从而将数据传输到笔记本电脑。  如果在笔记本电脑上启动 Tera Term、则会消耗数据、电路板运行正常。

显然、Win10 USB 驱动程序将 USB_dev_serial 标志(如 g_bUSBConfiged)设置为与之前的 Win10版本或 Win7中执行的操作不同。  Win10是否有解决此问题的解决方案或解决方法?

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

    你好、Chuck、

    这是我第一次听说这个问题、但如果它与新版本的 Win 10相关、这并不令我惊讶、因为没有人提出过这个问题。 Windows 10已导致我们的 USB 设备示例过去出现问题。 我将看到有关这一点的信息。 我的 PC 版本为2004、因此我将了解使用 EK-TM4C123GXL LaunchPad 时会发生什么情况。

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

    你好、Chuck、

    我在装有 Windows 10版本2004的 PC 上测试了 TivaWare 2.2.0.295中的 USB_DEV_serial 示例、我看到设备像往常一样正确地枚举并通过 USB 传输数据。

    我们没有进行任何应影响单 CDC 器件模式的更改、但库确实针对 USB 复合器件模式进行了更新。 您是否仅使用单端口 CDC 器件?

    此外、您是否还将 Windows 设备驱动程序基于 TI 驱动程序? 我们必须更新 Win 10的版本。

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

    拉尔夫

     当这个项目在4年前开始时、我们修改了 DK-TM4C123G 固件包 v2.1.0.12573中的 USB 串行代码。  代码取决于函数 USB_configured(),以确定是否有正在运行的进程将消耗我的应用程序要编写的文本。  在我的 Win7计算机上,要么 USB_configured()返回 false,文本未传输,要么返回 true,但 USB 驱动程序接受传输的数据并丢弃。  在 Win10计算机上、该函数返回 true、应用程序将文本写入 USB。  由于 Win10不运行 Tera Term、因此没有任何要使用的文本、并且传输缓冲区会填满。  一旦它填满、我的应用程序将在尝试传输时挂起。

      较新的 TivaWare 版本可能会使用不同的算法来确定 USB 配置。  在哪里可以找到更最新的 TI USB_dev_serial.c 文件?  我需要代码来识别 Win10笔记本电脑未配置为接受传输的数据。

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

    在考虑建立 USB 连接之前、我修改了应用程序代码以查找其他 USB 事件。  完成此操作后、我能够在 Win7和 Win10笔记本电脑上运行。