我使用 Nucleo STM32U5A5 评估板,基于 CDC_ACM 示例工程,UCPD + USB_HS。新建 CDC_ACM 工程,大部分 IOC 配置从这份示例 IOC 以及 STM32H7 系列 MOOC 教程复制过来;按照 STM32H7 MOOC 教程建议,用 WinMerge 把部分 USB 相关源码文件复制到新工程,下文称这个工程为新工程。
我发现函数 `static HAL_StatusTypeDef USB_CoreReset(USB_OTG_GlobalTypeDef *USBx);在内核复位操作后超时,CSRST 标志无法清零;但原版 demo 工程里这一步可以正常清除该标志。
我在`USB_CoreReset`断点下,通过 SFR 窗口比对 RCC/PWR/USB/UCPD 寄存器标志:demo 工程与新工程绝大多数寄存器一致,只有`TYPEC_VSTATE_CC2`存在差异 ,demo 中该位 = 1,新工程 = 0。
我已经查阅数据手册与参考手册,定位内核复位后 CSRST 无法清除的影响因素,请问有人在搭建 CDC/ACM 工程时遇到过该问题吗?
|
|