关于STM32CubeMX的Pinout配置时USART1与USB_OTG_FS引脚冲突解决方法

前两天在STM32平台上测试USB模块,用代码生成工具STM32CubeMX配置USART1的RX/TX引脚时,发现配置后的USART1前面有一个感叹号,当时没太注意。生成代码后,发现用串口工具无法正常通信,串口接收到的数据显示为乱码。USART1配置和芯片Pinout配置如下所示:

关于STM32CubeMX的Pinout配置时USART1与USB_OTG_FS引脚冲突解决方法

关于STM32CubeMX的Pinout配置时USART1与USB_OTG_FS引脚冲突解决方法

后来在网上查询了资料,发现当USB_OTG_FS功能打开时,USART1所配置的PA9、PA10引脚与USB_OTG_FS的ID脚、VBUS相冲突,并且在配置界面也能够看到提示信息:

关于STM32CubeMX的Pinout配置时USART1与USB_OTG_FS引脚冲突解决方法

解决方法:

1. 将USART1的引脚配置重映射为PA7、PA8,避免使用PA9、PA10;

2. 使用其它USART通道。

利用上述方法更改引脚配置后,USART可以正常通信。