wllhhu 发表于 2025-6-22 10:38

usb 多cdc 异常

gd32f303rct6usb 虚拟 5路 cdc acm,端点不够了, INT端点配置到了0x88这种没有的端点号上, 主机一直轮训这个无效的端点,请问有啥好的解决方法?

wllhhu 发表于 2025-6-22 10:39

中断端点能在不配置的情况下,使得数据收发正常?

dukedz 发表于 2025-6-22 15:32

为啥要虚拟这么多 cdc?
不能一路 cdc?然后把原本 5 路的串口数据打包走 1 路 cdc 串口?

wllhhu 发表于 2025-6-24 10:37

dukedz 发表于 2025-6-22 15:32
为啥要虚拟这么多 cdc?
不能一路 cdc?然后把原本 5 路的串口数据打包走 1 路 cdc 串口? ...

linux端使用的就是5路独立的通道映射到外面的5路485串口,所以都需要独立的通道

cr315 发表于 2025-6-24 16:12

减少CDC实例,每个实例都能分配到有效端点。

elephant00 发表于 2025-6-24 16:13

检查端点号是否在有效范围内,并避免重复配置。

jcky001 发表于 2025-6-24 18:13

在可能的情况下,考虑复用端点。

flycamelaaa 发表于 2025-6-24 19:14

修改USB描述符,每个CDC实例的端点描述符正确指向有效端点。

powerantone 发表于 2025-6-24 19:15

检查USB驱动代码,端点配置逻辑是否正确,有无硬编码或错误的端点号。

stormwind123 发表于 2025-6-24 20:15

用复合设备与IAD描述符。

probedog 发表于 2025-6-24 22:16

升级硬件或固件。

classroom 发表于 2025-6-24 22:16

USB协议分析仪捕获通信数据,检查端点配置和通信过程是否符合预期。

dukedz 发表于 2025-6-28 13:30

wllhhu 发表于 2025-6-24 10:37
linux端使用的就是5路独立的通道映射到外面的5路485串口,所以都需要独立的通道 ...
linux 环境可以考虑:
usb 只用一路 cdc 串口
linux 建立 5 个虚拟串口给 应用程序使用
这 5 个虚拟串口的数据经过一个程序转发给一路 usb cdc 串口,mcu 收到再拆分映射到外部 5 路 485 串口
页: [1]
查看完整版本: usb 多cdc 异常