[技术问答]

HC32F467的USB通讯问题

[复制链接]
1079|7
手机看帖
扫描二维码
随时随地手机跟帖
XXShan|  楼主 | 2025-6-13 09:28 | 显示全部楼层 |阅读模式
如果配置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

主题

2

帖子

0

粉丝