USB复合设备:如何让两个虚拟串口独立?

问题描述

我们有一个嵌入式设备 (STM32),它通过一个独特的 USB 连接到 PC。 USB 连接提供两个虚拟串行端口。 设备描述为:

0xEF,/*bDeviceClass*/
0x02,/*bDeviceSubClass*/
0x01,/*bDeviceProtocol*/

和接口描述是

0x02,/* bFunctionClass: CDC */
0x02,/* bFunctionSubClass */
0x01,/* bFunctionProtocol */

在 Windows 上测试,我们可以通过两个虚拟串口发送和接收数据。 然而,限制是必须打开两个虚拟串口才能进行数据传输工作。这意味着我们需要每个虚拟串行端口一个 Docklight(或 Putty)会话,以便数据从嵌入式设备流向 PC。

一旦 Docklight(或 Putty)的一个会话关闭,另一个会话上将不再有数据流动。代码仍在运行,但嵌入式设备没有任何内容

在这种情况下,在非常低的级别上,USB中断状态寄存器(USB_ISTR)的CTR始终为0,因此不会执行从嵌入式设备发送数据的代码

有谁知道如何让这两个虚拟串口独立?

谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)