调研:有人把STM32的USB虚拟串口VCP、CDC类用于产品吗?

2019-12-10 18:27发布


把STM32的USB虚拟串口(VCP、CDC类)用于产品,设备与PC机间进行通信,有人做过吗?

实际上想了解,这样应用的兼容性、稳定性、可靠性方面的情况如何,敢不敢用于产品中?

如果情况不好,用在批量产品中就麻烦了,后患无穷。

另外,官方的例程和驱动文件可信吗?

我做实验,发现PC驱动很难安装,总是出现两个设备;即使驱动成功了,也不能通信;也成功过一段时间,但后来又不行了。

求经验!


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
33条回答
菜包
1楼-- · 2019-12-10 19:41
 精彩回答 2  元偷偷看……
coding2011
2楼-- · 2019-12-10 21:17
用虚拟串口感觉有些不稳定,尤其是下位机掉电后再上电,上位机虚拟的那个串口根本不能用,还有就是必须等虚拟串口出来后且知道串口号上位机才可以执行打开操作
wuzhujian
3楼-- · 2019-12-10 21:43
本帖最后由 wuzhujian 于 2013-4-23 22:45 编辑

    3楼说的是实际情况,但并不是STM32的USB不行,而是PC端的驱动程序有问题。或者说是PC机的驱动程序机制造成的。
    如果是PC机正常的RS-232串口,断掉连接线,但串口硬件还是在的,所以重新接上连接线后,就能通信继续通信。但CDC类的USB转串口,当USB线断掉时,实际上PC机上已经没有该串口设备了,程序中的串口句柄已经无效了。但当USB线再次连接时,PC机给新的USB转串口分配的是新的内存,所以原来的句柄显然不能访问新的串口。
    换句话,USB转串口设备,可以当串口设备使用,但毕竟不是串口设备。
    所以说,PC端软件也是需要进行一些修改的。比如,接收USB设备的插入、拔出的消息,以便进行适当的处理。
    当然,直接拿ST的Demo程序来当产品代码用,就有点儿戏了。
qllaoda1
4楼-- · 2019-12-11 00:15
我觉得HID方式好点。虚拟串口方式的话,万一别的一个应用程序不小心当成串口打开就麻烦了
菜包
5楼-- · 2019-12-11 03:25
qllaoda1 发表于 2013-4-23 22:45
我觉得HID方式好点。虚拟串口方式的话,万一别的一个应用程序不小心当成串口打开就麻烦了 ...

串口通讯都会有协议校验,即使别的程序当成串口用了,也不会对产品功能造成影响,毕竟两个不同的软件数据包格式校验算法完全对的上的概率太小了。如果产品功能会受影响那只能说软件可靠性太差了
NemoGu
6楼-- · 2019-12-11 07:37
 精彩回答 2  元偷偷看……

一周热门 更多>