串口相关知识总结

1.USART 框图

串口相关知识总结_第1张图片
串口相关知识总结_第2张图片

1.1 USART 信号引脚

TX:发送数据输出引脚
RX:接收数据输入引脚
SCLK:发送器时钟输出,适用于同步传输
SW_RX:数据接收引脚,属于内部引脚,用于智能卡模式
IrDA_RDI:IrDA 模式下的数据输入
IrDA_TDO:IrDA 模式下的数据输出
nRTS:发送请求,若是低电平,表示 USART 准备好接收数据
nCTS:清除发送,若是高电平,在当前数据传输结束时阻断下一次的数据发送

1.2 数据寄存器

1)USART_DR 包含了已发送或接收到的数据。由两个寄存器组成的,一个专门给发送用的(TDR),一个专门给接收用的(RDR),该寄存器具备读和写的功能。
2)TDR 寄存器提供了内部总线和输出移位寄存器之间的并行接口。
3)RDR 寄存器提供了输入移位寄存器和内部总线之间的并行接口。
4)当进行数据发送操作时,往 USART_DR 中写入数据会自动存储在 TDR内;
当进行读取操作时,向 USART_DR 读取数据会自动提去 RDR 数据。

1.3控制器

USART 有专门控制发送的发送器,控制接收的接收器,还有唤醒单元、中断控制等等,

1.4 时钟与波特率

这部分的主要功能就是为 USART 提供时钟以及配置波特率。波特率计算公式如下:
fck是串口的时钟,USART1的时钟是PCLK2,其他串口都是PCLK1
16:过采样系数
USARTDIV: 窗口分频系数
串口相关知识总结_第3张图片

2.USART寄存器

引用手册中的配置步骤:

  1. 通过在 USART_CR1 寄存器上置位 UE 位来激活 USART。
  2. 编程 USART_CR1 的 M 位来定义字长。
  3. 在 USART_CR2 中编程停止位的位数。
  4. 如果采用多缓冲器通信,配置 USART_CR3 中的 DMA 使能位(DMAT)。按多缓冲器通
    信中的描述配置 DMA 寄存器。
  5. 利用 USART_BRR 寄存器选择要求的波特率。
  6. 设置 USART_CR1 中的 TE 位,发送一个空闲帧作为第一次数据发送。
  7. 把要发送的数据写进 USART_DR 寄存器(此动作清除 TXE 位)。在只有一个缓冲器的情
    况下,对每个待发送的数据重复步骤 7。
  8. 在 USART_DR 寄存器中写入最后一个数据字后,要等待 TC=1,它表示最后一个数据帧
    的传输结束。当需要关闭 USART 或需要进入停机模式之前,需要确认传输结束,避免破坏最
    后一次传输。

2.1 串口时钟使能(APB2ENR、APB2ENR)

2.2串口复位(APB2RSTR)

APB2RSTR 寄存器的第 4 位

2.3串口波特率设置( USART_BRR)

2.4串口控制

控制寄存器1(CR1)
位13:使能USART
位12:配置8个数据位
位10:禁止检验控制
位5:使能接收缓冲区非空中断
位3:使能发送
位2:使能接收

控制寄存器2(CR2)
位13:12 该寄存器需要配置1个停止位

控制寄存器3(CR3)
位3 配置不选择半双工模式

2.5数据发送与接收- 数据寄存器(DR)

位8:0 设置好控制和波特率寄存器后,往该寄存器写入数据即可发送,接收数据则读该寄存器

2.6 状态寄存器(SR)

位6 TC位,是否发送完成
位5 RXNE,是否收到数据

3.GPIO 引脚复用功能

复用功能寄存器有 2 个,都是 32 位有效的寄存器,分高位(AFRH)和低位(AFRL)。复用器采用 16 路复用功能输入 AF0~AF15,通过 GPIOx_AFRL(引脚 0~7)、GPIOx_AFRH(引脚 8~15)寄存器对复用功能输入进行配置,每四位控制 1 路复用。
串口相关知识总结_第4张图片
每路映射情况如下图所示,每次只能选择一路映射
串口相关知识总结_第5张图片

你可能感兴趣的:(单片机,嵌入式硬件)