usb 多cdc 异常
gd32f303rct6usb 虚拟 5路 cdc acm,端点不够了, INT端点配置到了0x88这种没有的端点号上, 主机一直轮训这个无效的端点,请问有啥好的解决方法? 中断端点能在不配置的情况下,使得数据收发正常? 为啥要虚拟这么多 cdc?不能一路 cdc?然后把原本 5 路的串口数据打包走 1 路 cdc 串口? dukedz 发表于 2025-6-22 15:32
为啥要虚拟这么多 cdc?
不能一路 cdc?然后把原本 5 路的串口数据打包走 1 路 cdc 串口? ...
linux端使用的就是5路独立的通道映射到外面的5路485串口,所以都需要独立的通道 减少CDC实例,每个实例都能分配到有效端点。 检查端点号是否在有效范围内,并避免重复配置。
在可能的情况下,考虑复用端点。 修改USB描述符,每个CDC实例的端点描述符正确指向有效端点。 检查USB驱动代码,端点配置逻辑是否正确,有无硬编码或错误的端点号。
用复合设备与IAD描述符。 升级硬件或固件。 USB协议分析仪捕获通信数据,检查端点配置和通信过程是否符合预期。 wllhhu 发表于 2025-6-24 10:37
linux端使用的就是5路独立的通道映射到外面的5路485串口,所以都需要独立的通道 ...
linux 环境可以考虑:
usb 只用一路 cdc 串口
linux 建立 5 个虚拟串口给 应用程序使用
这 5 个虚拟串口的数据经过一个程序转发给一路 usb cdc 串口,mcu 收到再拆分映射到外部 5 路 485 串口
页:
[1]