XXShan 发表于 2025-6-13 09:28

HC32F467的USB通讯问题

如果配置USB端点IN和OUT都为EP1,在枚举描述符后,当有数据通过EP1的OUT令牌包接收Data时,会导致一直触发USB中断,然后我的FreeRTOS任务不运行了,这是为什么,然后我把IN改为EP3,OUT使用EP1就能正常运行

XXShan 发表于 2025-6-13 11:06

如果要修改收发的EP要注意哪些点?

liuwenwyf 发表于 2025-6-14 01:17

不知道。。。。。

丙丁先生 发表于 2025-6-14 06:27

问题的核心在于同一端点被错误用于双向传输,导致硬件中断处理逻辑混乱和协议状态机异常。通过分开端点配置,不仅符合USB规范,还能隔离中断处理流程,避免任务调度被中断抢占。实际应用中,建议遵循“一端点一方向”的原则,并严格按协议配置描述符,以确保USB通信的稳定性和实时性

丙丁先生 发表于 2025-6-14 06:28

实践验证与解决方案
分开端点:将IN和OUT配置为不同端点(如EP1-OUT和EP3-IN),符合USB端点方向性要求,中断处理逻辑清晰,避免冲突。
优化中断处理:在中断服务程序中,需确保每次处理完数据后,正确清除中断标志、重置端点缓冲区状态,并避免长时间阻塞操作(如复制数据到大缓存区)。
检查描述符配置:确保设备描述符中明确各端点的方向、传输类型(如中断、批量)及最大包大小,避免主机因配置错误发起异常传输

LightCatcher 发表于 2025-6-14 10:54

USB 硬件端点资源冲突 + 中断未能正确处理,一直进中断可能。

EchoInEons 发表于 2025-6-14 16:02

最好是能把你的配置代码发出来,这样大家才能仔细分析

SolitudeSage 发表于 2025-6-15 10:07

没代码只能盲猜了!
页: [1]
查看完整版本: HC32F467的USB通讯问题