CubeMx配置UART总结

昨天在使用CubeMx配置uart的时候遇到了一些问题,在这里总结记录一下,以免后期再次出错。
芯片:STM32F103RCT6
工具:CubeMx、Keil5
使用UART1进行配置
下面开始具体配置操作:
1.配置RCC

CubeMx配置UART总结
在RCC的选择上一共有三个选项,分别如下图:
CubeMx配置UART总结
其中BYPASS Clock Source表示旁路时钟源,也就是外部时钟,只需要外部提供时钟接入OSC_IN引脚,OSC_OUT引脚悬空,对应选择为BYPASS Clock Source;Crystal/Ceramic Resonator表示晶体/陶瓷晶振,谐振器即相当于石英/陶瓷 晶振,OSC_IN 与 OSC_OUT引脚都要连接,对应选择为Crystal/Ceramic Resonator。我这里开发板使用的是12Mhz晶振,所以RCC的HSE选项设置为Crystal/Ceramic Resonator。
2.配置SYS
CubeMx配置UART总结
配置sys主要是为了配置调试器所连接的引脚,这里我使用ST-LINK或JLINK的SWD模式调试,所以选择JTAG(4pin)。
3.配置时钟
CubeMx配置UART总结
由于我的开发板采用的是外部12MHz晶振,所以需要将HSE修改为12,同时设置最高时钟为72MHz。
4.配置UART1
这里选择异步通信,并指定波特率。
CubeMx配置UART总结
开启串口中断并查看引脚高低电平:
CubeMx配置UART总结
CubeMx配置UART总结
5.工程导出设置
指定工程名称,指定工程生成路径,如果使用Keil5作为编译环境则选择MDK-ARM V5,最后选择自己安装的库。
CubeMx配置UART总结
复制所有的.c和.h,然后为每个工程生成独立的.c和.h
CubeMx配置UART总结
如果遇到以下错误,则重新选一次库,然后再点CENERATE CODE,可以多次尝试。
CubeMx配置UART总结
直到出现以下弹窗,点击open project即可打开工程。
CubeMx配置UART总结
总结:
1.要注意细节,要先配置RCC然后再去配置时钟树
2.注意硬件连接,可能硬件工程师已经把RX TX已经反转过来了,不需要反接
3.注意自己板载晶振是多大,不一定是8MHz,有可能是12MHz,如果晶振配置错误,串口调试助手接收的数据就是乱码。
4.另外就是printf打印,如果你将putc函数写在了其他地方不能打印,可以尝试一下写在main.c中的main函数上面。