yangskyhigh 发表于 2021-9-8 23:28:14

如何在RL-USB中虚拟2个串口加1个HID?

使用的STM32F415,RL-USB 6.14.1,通过RTE环境加了3个USB Device
每一个单独都是好用的,合起来后

USBD_Initialize         (1U);         // USB Device 1 Initialization
USBD_Initialize         (0U);         // USB Device 0 Initialization

USBD_Connect            (1U);         // USB Device 1 Connect
USBD_Connect            (0U);         // USB Device 0 Connect



USBD_Initialize执行第1个的那个设备能被电脑识别出来
请问要怎么做,才能让这3个设备同时出来呢?         

eric2013 发表于 2021-9-9 08:58:33

F415的USB Device只有一个,添加一个就可以。

然后添加虚拟串口和HID例化即可

yangskyhigh 发表于 2021-9-9 12:58:38

eric2013 发表于 2021-9-9 08:58
F415的USB Device只有一个,添加一个就可以。

然后添加虚拟串口和HID例化即可

能具体描述一下怎么弄吗?

eric2013 发表于 2021-9-9 15:12:51

yangskyhigh 发表于 2021-9-9 12:58
能具体描述一下怎么弄吗?

那个RL-USB的help文档里面有个说明的,你可以看下。

yangskyhigh 发表于 2021-9-10 21:46:20

eric2013 发表于 2021-9-9 15:12
那个RL-USB的help文档里面有个说明的,你可以看下。

谢谢回复
照着文档里的例子(它是一个MSC和一个HID混合)
配置了2个CDC 串口(第1CDC的中断端点1,批量端点2,第2个CDC的中断端点3,批量端点4)或者
1个CDC 串口(中断端点1,批量端点2)和HID(中断端点3)
在设备管理器里还是出现感叹号,提示
“该设备无法启动。 (代码 10)

{操作失败}
请求的操作不成功。”

yangskyhigh 发表于 2021-9-10 21:57:53

eric2013 发表于 2021-9-9 15:12
那个RL-USB的help文档里面有个说明的,你可以看下。

终于知道原因了
STM32F415只有1个端点0,3个IN和OUT端点,即序号(1-3)
一个CDC要占用2个端点,一个HID占用1个端点
因此最多1个CDC和1个HID,而不可以2个CDC。
之前把HID的端点号设置了5,自然也是不行

yangskyhigh 发表于 2021-9-10 22:00:43

有1个新问题,虚拟出来的串口,在设备管理器里就是 “USB 串行设备(COM3)”
而 ST-Link自带的虚拟串口则是“STMicroelectronics STLink Virtual COM Port(COM2)”
能自定义这么一段描述符吗?

eric2013 发表于 2021-9-11 08:59:52

yangskyhigh 发表于 2021-9-10 22:00
有1个新问题,虚拟出来的串口,在设备管理器里就是 “USB 串行设备(COM3)”
而 ST-Link自带的虚拟串口则 ...

可以修改inf驱动文件。

yangskyhigh 发表于 2021-9-12 23:37:30

eric2013 发表于 2021-9-11 08:59
可以修改inf驱动文件。

单纯修改inf似乎不行了
win10要求数字签名,改了inf,对应的cat文件没改也不行啊

eric2013 发表于 2021-9-13 01:01:33

yangskyhigh 发表于 2021-9-12 23:37
单纯修改inf似乎不行了
win10要求数字签名,改了inf,对应的cat文件没改也不行啊

win7上没问题,win10上有时间我试试。

页: [1]
查看完整版本: 如何在RL-USB中虚拟2个串口加1个HID?