解决STM32 HAL USB VBUS当做普通IO口异常问题
在新更新的硬件板上将VBUS当做普通IO口使用,在测试时发现VBUS控制的LED异常闪烁,怀疑为VBUS功能没有完全关闭导致。查阅相关资料STM32 USBD VBUS PA9 as GPIO
解决方案如下:
1.由于使用到了PA9作为通用的GPIO口,我们需要关闭VBUS sensing(bit 21)功能.
2.Bit 19 VBUSBSEN and Bit 18 VBUSASEN 这两个比特位也需要被复位。
在STM32 HAL库下更改
USB_DevInit
/*Activate VBUS Sensing B */
USBx->GCCFG |= USB_OTG_GCCFG_VBUSBSEN;
if (cfg.vbus_sensing_enable == 0U