[STM32G0] USB串口枚举卡住了到底是哪儿出问题了?

[复制链接]
 楼主| 公羊子丹 发表于 2025-5-4 07:14 | 显示全部楼层 |阅读模式
用了CDC例程跑起来总是停在枚举阶段,是不是描述符不兼容?
Clyde011 发表于 2025-5-4 07:20 | 显示全部楼层
你用的是哪版CubeMX生成的工程?
 楼主| 公羊子丹 发表于 2025-5-4 07:20 | 显示全部楼层
描述符长度改了吗?有些系统挺挑。
周半梅 发表于 2025-5-4 07:21 | 显示全部楼层
host那边是Win还是Linux?影响蛮大。
帛灿灿 发表于 2025-5-4 07:22 | 显示全部楼层
是不是没给Vbus检测电路?
童雨竹 发表于 2025-5-4 07:23 | 显示全部楼层
我之前没加pull-up就枚举失败。
万图 发表于 2025-5-4 07:24 | 显示全部楼层
改VID/PID后重插设备试试。
Wordsworth 发表于 2025-5-4 07:25 | 显示全部楼层
看下Cube里是否关了某些中断。
Bblythe 发表于 2025-5-4 07:26 | 显示全部楼层
DFU模式和CDC混了?
Pulitzer 发表于 2025-5-4 07:26 | 显示全部楼层
用USBView工具能看到设备吗?
Uriah 发表于 2025-5-4 07:27 | 显示全部楼层
枚举阶段卡住,多半是中断没起。
powerantone 发表于 2025-5-7 12:32 | 显示全部楼层
可能与时钟配置有关。
stormwind123 发表于 2025-5-7 12:32 | 显示全部楼层
中断未正确处理,可能导致枚举卡住。
光辉梦境 发表于 2025-5-12 13:30 | 显示全部楼层
D+上拉电阻未启用,STM32G0需通过GPIO控制D+上拉电阻以触发主机枚举。若未正确配置GPIO输出高电平,主机无法检测到设备插入。需确保在代码中初始化GPIO并拉高D+信号线,例如使用HAL_GPIO_WritePin(GPIOx, GPIO_PIN_y, GPIO_PIN_SET)。

暖了夏天蓝了海 发表于 2025-5-12 14:32 | 显示全部楼层
USB引脚配置错误,检查PA11(D-)、PA12(D+)是否正确配置为复用功能(AF10),且未被其他外设占用。可通过CubeMX确认引脚复用设置,避免冲突。

一秒落纱 发表于 2025-5-12 15:05 | 显示全部楼层
STM32G0的USB需48MHz时钟源(如HSI48或PLL)。若未启用或时钟不稳定,枚举会失败。需检查时钟树配置,确保在CubeMX中启用HSI48或正确配置PLL,并通过HAL_RCCEx_PeriphCLKConfig()应用。

冰春彩落下 发表于 2025-5-12 15:47 | 显示全部楼层
时钟精度不足,USB规范要求时钟误差≤±0.25%。若使用HSI48且未启用自动校准(CRS),时钟可能漂移导致枚举失败。可在代码中启用CRS自动校准

江河千里 发表于 2025-5-12 16:13 | 显示全部楼层
描述符格式错误,主机通过描述符识别设备类型。若设备描述符、配置描述符或字符串描述符格式不符规范,枚举会中断。需检查描述符数组(如USBD_FS_DeviceDesc)是否符合USB规范,例如设备类代码(bDeviceClass)是否正确(CDC类为0x02)。

夜阑风雨 发表于 2025-5-12 17:04 | 显示全部楼层
端点配置不当,CDC类需至少一个控制端点(EP0)和两个批量端点(IN/OUT)。若端点配置错误(如方向、类型、大小),枚举会失败。需确认端点描述符配置,例如批量端点大小是否为64字节。

三生万物 发表于 2025-5-12 17:05 | 显示全部楼层
中断未启用或优先级冲突,USB中断需在NVIC中正确配置,且优先级足够高。若中断未启用或被其他中断阻塞,枚举会停滞。需检查USB_IRQn的优先级设置,并确保无更高优先级中断占用总线。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

182

主题

6167

帖子

3

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

182

主题

6167

帖子

3

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