GD32F105RB 使用官方USB例程,运行至枚举状态机时进入死循环

[复制链接]
12001|62
gygp 发表于 2025-4-10 18:08 | 显示全部楼层
如果堆栈溢出,可能会导致程序异常行为,包括死循环
wwppd 发表于 2025-4-10 21:18 | 显示全部楼层
地址配置逻辑错误              
averyleigh 发表于 2025-4-10 22:51 | 显示全部楼层
参考官方提供的USB例程和示例代码,确保自己的实现与官方推荐的做法一致。
uytyu 发表于 2025-4-12 20:12 | 显示全部楼层
USB通信依赖于稳定的时钟信号,如果时钟配置错误或不稳定,可能会导致通信失败。
alvpeg 发表于 2025-4-13 13:13 | 显示全部楼层
检查堆栈大小配置,确保有足够的内存供 USB 模块使用。
10299823 发表于 2025-4-13 15:16 | 显示全部楼层
在USB中断处理函数中正确清除中断标志位。如果中断标志位没有被清除,可能会导致中断反复进入,从而造成死循环
everyrobin 发表于 2025-4-13 15:53 | 显示全部楼层
语言ID和制造商字符串需正确编码,避免乱码导致解析失败。
rosemoore 发表于 2025-4-13 16:33 | 显示全部楼层
检查 USB 硬件连接,确保 D+、D- 引脚正确连接,VBUS 电源正常提供。
modesty3jonah 发表于 2025-4-13 17:33 | 显示全部楼层
在枚举状态机的关键位置添加调试信息,如打印日志、设置断点等,以便观察程序的执行流程和变量的值,找出问题所在。
mollylawrence 发表于 2025-4-13 21:02 | 显示全部楼层
合理设置中断优先级,避免中断被其他高优先级中断抢占。
tifmill 发表于 2025-4-14 08:01 | 显示全部楼层
检查usb_device_descriptor中的VID、PID是否与官方例程一致,且长度字段正确。
星辰伴梦 发表于 2025-4-19 14:05 | 显示全部楼层
看起来像是USB时钟配置的问题。你已经将外部晶振改为8M,并且主频打印为96M,但是USB时钟源没有相应修改。请检查你的USB时钟配置是否正确,确保USB时钟源与主频相匹配。
单芯多芯 发表于 2025-4-21 20:12 | 显示全部楼层
时钟不稳定可能导致系统运行不稳定。检查晶振或时钟电路。
LinkMe 发表于 2025-4-22 19:48 | 显示全部楼层
USB分析仪能抓取USB数据,检查枚举阶段数据包
物联万物互联 发表于 2025-4-24 23:30 | 显示全部楼层
升级单片机固件或选择兼容的USBH库版本。
理想阳 发表于 2025-5-12 16:13 | 显示全部楼层
仔细看描述符,确保中断触发条件正确,中断服务程序逻辑清晰。
zephyr9 发表于 2025-5-14 07:19 | 显示全部楼层
检查USB中断设置和状态机流程,确保正确配置。
流星flash 发表于 2025-5-16 07:46 | 显示全部楼层
USB设备得先告诉主机它是啥,然后才能连接上。
PreWorld 发表于 2025-5-18 18:54 | 显示全部楼层
先确认USB接口正常,然后逐个试不同主机,看是否兼容。
不想打补丁 发表于 2025-5-20 14:25 | 显示全部楼层
中断优先级要调对,否则处理慢或丢信号。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部