KST-STM32学习之USART

1、STM32F103ZE 单片机内部集成有 3(USART)+2(UART)个串行通信接口。

2、相应的串行通信接口对应的管脚。
这里写图片描述

3、注意了,USART和UART是不一样的!

USART - 既能实现同步通信,又可以异步通信。
UART - 只能实现异步通信。

4、几个标志位的认识

发送数据寄存器的数据传送到移位寄存器后,发送数据寄存器(TDR)就空了,这个时候硬件会将TXE置位。向TDR中写数据会自动清除TXE

TXE置位,并且没有数据再写入TDR,这个时候硬件会将发送完成标志位(TC)置位。

同时还可通过TXEIE或者TCIE设置相应的中断使能,从而进入相应的中断服务函数!

注:USART发送功能(TE)置位后,将发送一个空闲帧(0xFF),如果此时没有数据发送,TXE标志位和TC标志位会一直处于置位状态,且如果此时是能了TXEIE或者TCIE,将不断的重复执行串口中断服务函数。

由于 TDR 寄存器一旦为空,TXE 标志位会硬件置位,进而触发中断,所以当不发送数据时要及时关闭发送中断。

5、关于接受数据

相比于发送数据,接受数据似乎更简单了点。
接受完毕后,硬件设置接收数据寄存器非空标志位(RXNE),当去读数据,这个标志位会自动清除,当然也可以手动清除

6、关于引脚配置

TXD 引脚配置为复用推挽输出模式
RXD 引脚配置为浮空输入模式

7、配置流程总结

  • 使能 USART 时钟及配置相关引脚

    • 注意看对应USART在那个总线上,并且相应引脚应该是什么模式
  • USART 外设初始化参数设置

    • 波特率,数据位等,使能发送和接收功能,××_Init进行初始化。一旦使能发送功能,便会开始发送空闲帧。
  • 串口中断优先级

  • 使能 USART 中断

    • 注意在此只使能串口接收中断,发送中断必须在发送前使能,发送完毕后关闭,否则程序会重复执行中断服务函数。
  • 使能 USART 外设

  • 编写 USART 中断服务函数

猜你喜欢

转载自blog.csdn.net/ReCclay/article/details/81259577
今日推荐