前两天在STM32平台上测试USB模块,用代码生成工具STM32CubeMX配置USART1的RX/TX引脚时,发现配置后的USART1前面有一个感叹号,当时没太注意。生成代码后,发现用串口工具无法正常通信,串口接收到的数据显示为乱码。USART1配置和芯片Pinout配置如下所示:
后来在网上查询了资料,发现当USB_OTG_FS功能打开时,USART1所配置的PA9、PA10引脚与USB_OTG_FS的ID脚、VBUS相冲突,并且在配置界面也能够看到提示信息:
解决方法:
1. 将USART1的引脚配置重映射为PA7、PA8,避免使用PA9、PA10;
2. 使用其它USART通道。
利用上述方法更改引脚配置后,USART可以正常通信。