STM32F1_Hal库学习UART
一、UART的逻辑图
下图为UART的逻辑图,注意TDR和RDR的访问地址虽然相同,但是物理上是两个寄存器,通过读写操作来区分操作哪个寄存器。
二、通过CubeMx来配置串口
1、阻塞模式串口发送
2、非阻塞式串口发送和接收
这里的非阻塞发送接收根据是否使用DMA有两种函数,没什么太大区别。
3、重写printf
本次使用的是GCC编译器,printf的实现是_write()函数,而非fputc()函数。在usart.c中加入此代码即可。同时记得包含头文件 <stdio.h>
三、总结
本节主要介绍如何使用CubeMx配置UART,同时改下printf函数。详细代码见
Jiang-kun02/STM32F103c8t6_learning: 包括stm32F103C8T6的标准库和HAL库的示例代码