STM32F1串口通信总结

1、处理器与外部设备通信的两种方式:

1.并行通信    -传输原理:数据各个位同时传输。    -优点:速度快。    -缺点:占用引脚资源多。

2.串行通信    -传输原理:数据按位顺序传输。       -优点:占用引脚资源少。    -缺点:速度相对较慢。

2、串行通信按照数据传送方向,分为:

1.单工:数据传输只支持数据在一个方向上传输 。

2.半双工:允许数据在两个方向上传输,但是在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信;

3.全双工:允许数据同时在两个方向上传输,因此全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力。

                  

3、串行通信的通信方式 :

1.同步通信:带时钟同步信号传输,根据时钟信号传输。     -SPI,IIC通信接口

2.异步通信:不带时钟同步信号,需规定波特率来通信。     -UART(通用异步收发器),单总线

通信标准

引脚说明

通信方式

通信方向

  UART

(通用异步收发器)

TXD:发送端

RXD:接受端

GND:公共地

异步通信

全双工

  单总线

(1-wire)

DQ:发送/接受端

异步通信

半双工

SPI

SCK:同步时钟

MISO:主机输入,从机输出

MOSI:主机输出,从机输入

同步通信

全双工

I2C

SCL:同步时钟

SDA:数据输入/输出端

同步通信

半双工

4、STM32的串口通信接口 :

1.UART:通用异步收发器

UART异步通信方式特点:

  1. 全双工异步通信。
  2. 分数波特率发生器系统,提供精确的波特率。-发送和接受共用的可编程波特率,最高可达4.5Mbits/s 可编程的数据字长度(8位或者9位);
  3. 可配置的停止位(支持1或者2位停止位);
  4. 可配置的使用DMA多缓冲器通信。
  5. 单独的发送器和接收器使能位。
  6. 检测标志:① 接受缓冲器  ②发送缓冲器空 ③传输结束标志 多个带标志的中断源。
  7. 触发中断。 其他:校验控制,四个错误检测标志。

2.USART:通用同步异步收发器

5、UART异步通信方式引脚连接方法:

-RXD:数据输入引脚。数据接受。 -TXD:数据发送引脚。数据发送。

         

串口号

RXD

TXD

1

PA10

PA9

2

PA3

PA2

3

PB11

PB10

4

PC11

PC10

5

PD2

PC12

6、串口通信过程:          

7、STM32串口异步通信需要定义的参数:

起始位  数据位(8位或者9位)  奇偶校验位(第9位)  停止位(1,15,2位)  波特率设置

8、USATR框图:                             

9、常用的串口相关寄存器:

1.USART_SR状态寄存器

2.USART_DR数据寄存器

3.USART_BRR波特率寄存器

波特率计算方法:

10、串口配置的一般步骤:

  1. 串口时钟使能,GPIO时钟使能:RCC_APB2PeriphClockCmd();

  2. 串口复位:USART_DeInit(); 这一步不是必须的

  3. GPIO端口模式设置:GPIO_Init(); 模式设置为GPIO_Mode_AF_PP

  4. 串口参数初始化:USART_Init();

  5. 开启中断并且初始化NVIC(如果需要开启中断才需要这个步骤)    NVIC_Init();       USART_ITConfig();

  6. 使能串口:USART_Cmd();

  7. 编写中断处理函数:USARTx_IRQHandler();

  8. 串口数据收发: void USART_SendData();//发送数据到串口,DR uint16_t USART_ReceiveData();//接受数据,从DR读取接受到的数据

  9. 串口传输状态获取: FlagStatus USART_GetFlagStatus(USART_TypeDef* USARTx, uint16_t USART_FLAG); void USART_ClearITPendingBit(USART_TypeDef* USARTx, uint16_t USART_IT);