STM32
直播中

杨帆

7年用户 1272经验值
私信 关注
[问答]

关于STM32 USB虚拟串口的疑问求解

大家都说STM32 USB的虚拟串口有问题, 只要PC端串口打开着, 然后拔掉USB, 再插上USB的时候就打不开串口, 就拔掉USB以后在PC端没有彻底关闭掉串口, 造成再插上的时候也是认为是串口已经在打开状态。
对比CH340和CP2102等 都没有这种问题, 把问题归结于ST提供的PC端虚拟串口驱动, 然后发邮件给ST咨询, ST说: 我们的驱动是没有问题的, 是串口助手的问题。
彻底失望, 人家340、2102等都没有问题, 就你有问题, 怎么把问题归结于串口助手呢, 怎么能说出这么不负责任的话呢? 我们的产品中其它问题都能解决, 就是解决不了这个问题。

回帖(2)

李捷

2024-4-25 16:08:04
USB转串口,毕竟不是真正的串口,是“虚拟”的。
从机理上讲,硬件串口,不管串口线是否连接,硬件始终是于电脑相连的,是可以与电脑通信的,串口的驱动程序是一直工作的。
而USB转串口,一但USB线拨掉,该串口已经不存在系统中了,系统分配给该串口的资源,就已经被回收给系统了,打开串口时返回的句柄,已经是个废句柄了(它指向的资料已经被系统释放了)。
楼主的问题,既不是ST的问题,也不是微软的问题,USB工作机理的问题。
解决的办法是:
接收USB改变的消息,一但发生USB 设备改变,就对该消息进行判断,是不是你所打开的串口被拨出或插上了。
所以,早期编写的串口助手,并不完全适合于USB转串口这种情况。
举报

张玉兰

2024-4-25 17:30:46
关于STM32 USB虚拟串口的问题,我理解您的担忧。在这种情况下,您可以尝试以下几种方法来解决问题:

1. 更新驱动程序:确保您的STM32 USB虚拟串口驱动程序是最新版本。有时候,驱动程序的更新可能会解决一些兼容性问题。

2. 使用其他串口助手:尝试使用不同的串口助手软件,看看是否仍然存在问题。这可以帮助您确定问题是否确实与STM32的驱动程序有关。

3. 检查硬件连接:确保您的STM32开发板与PC之间的USB连接是稳定的。有时候,连接问题可能导致串口通信不稳定。

4. 重置串口:在拔掉USB并重新插入之前,尝试在PC端关闭串口助手软件,然后重新打开。这可以确保串口在重新连接时是处于关闭状态。

5. 联系ST技术支持:如果问题仍然存在,您可以尝试联系ST的技术支持团队,向他们提供详细的信息和日志,以便他们能够更好地帮助您解决问题。

6. 考虑使用其他USB转串口芯片:如果问题确实与STM32的驱动程序有关,您可以考虑使用其他USB转串口芯片,如CH340或CP2102,以避免兼容性问题。

希望这些建议能帮助您解决问题。如果您有其他疑问或需要进一步的帮助,请随时告诉我。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分