STM32——串口通信基础

一.基础知识

处理器与外部设备通信的两种方式:并行通信,串行通信。

串行通信的三种传送方式:单工(图a.eg.遥控器),半双工(图b.eg.对讲机),全双工(图c.eg.电话)。

STM32——串口通信基础_第1张图片

串行通信的通信方式:同步通信(带时钟同步信号传输。——SPI,IIC通信接口),异步通信(不带时钟同步信号,必须提前约定波特率。——UART(通用异步收发器),单总线)。

常见串行通信接口:

STM32——串口通信基础_第2张图片

二.STM32的串口通信接口

  • UART:通用异步收发器

  • USART:通用同步异步收发器

 (关于RXD,TRD所对应的引脚接口,可以根据 硬件资料//芯片资料//STM32F103RCT6 查找。)

串口通信过程

STM32——串口通信基础_第3张图片

注意:串口通信和串行通信的区别:串口通信①是逐段发送和接收的通信方式,②通过数据信号线、地线和控制线在外设和计算机之间逐位传输数据的一种通信方式。③是一种通信手段,相对于以太网模式、红外模式、蓝牙模式而言,是一种相对低级的通信手段。串行通信①指通信双方根据比特遵循时间顺序的一种通信方式。②是指一点一点地发送和接收数据,包括I2C、SPI等。) 

三.STM32串口异步通信需要定义的参数

  1. 起始位
  2. 数据位(8位)
  3. 奇偶校验位(第九位)——提高传输的准确率
  4. 停止位
  5. 波特率设置

四.常用串口相关寄存器

  • USART_SR状态寄存器( 状态寄存器适用于检测串口此时所处的状态。 主要关注两个位:RXNE和TC(第5、6两位)。 )

  • USART_DR数据寄存器

  • USART_BRR波特率寄存器

波特率计算方法

   

(f(PCLKx)是给串口的时钟,PCLK1=36MHZ用于USART2,3,4,5,PCLK2=72MHZ用于USART1,USARTDIV是一个无符号定点数)

例:假设串口1要设置115200的波特率,则

STM32——串口通信基础_第4张图片

STM32——串口通信基础_第5张图片

你可能感兴趣的:(stm32)