笔记7:STM32F4--串口通信基本知识

一.串口通信协议
1.两个层
物理层:规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输。其实就是硬件部分。

协议层:协议层主要规定通讯逻辑,统- -收发双方的数据打包、解包标准。其实就是软件部分。

简单来说物理层规定我们用嘴巴还是用肢体来交流协议层则规定我们用中文还是英文来交流
1.1.物理层
在这里插入图片描述
1.1.1 232串口:STM32都是使用TTL电平传输,因此若用R232标准电平传输,需要电平转换芯片。
在这里插入图片描述
在这里插入图片描述
1.1.2 USB转串口:
主要用于芯片和电脑之间传输
常用转换芯片有:CH340,PL2303,CP2102,FT232
使用时电脑需要安装转换芯片驱动
在这里插入图片描述
1.1.3原生的串口转串口:不需要电平转换
在这里插入图片描述
1.2协议层,软件部分
在这里插入图片描述
二.串口通信结构框图
2.1.结构框图
在这里插入图片描述
上面框图分为四个部分:引脚(6个);数据寄存器;控制器;波特率

2.1.1.串口对应的引脚:
在这里插入图片描述
2.1.1.1 引脚说明:
在这里插入图片描述
当TX+RX+SLCK三者一起使用时则为同步通信。
2.1.2 数据寄存器:USART_DR
数据寄存器又包含两个寄存器,TDR(发送数据寄存器)和RDR(接受数据寄存器),举例:USART_DR=0XFF;则此时是用于发送寄存器 若Temp=USART_DR,此时是读,则是用的RDR寄存器。

在这里插入图片描述
异步传输时:为了保持数据一致,因此有低电平的启动位,然后就是数据帧,有可能有奇偶校验位,还有一位高电平停止位(停止位一定是高电平)

在这里插入图片描述
2.1.3 波特率:USART_BRR:波特率寄存器,分整数部分和小数部分。
USART_CR1 :OVER8,有这两个寄存器控制。
在这里插入图片描述
2.1.3.1波特率计算:
在这里插入图片描述
图中USARTDIV就是写入波特率寄存器中的数值。
三.USART结构体的初始化
3.1时钟相位和极性:
在这里插入图片描述
相位:CPHA:时钟相位
该位允许用户在同步模式下选择 SCLK 引脚上时钟输出的相位。它与 CPOL 位结合使用可获得所需
的时钟/数据关系(请参见图258 至259)
0:在时钟第一个变化沿捕获数据
1:在时钟第二个变化沿捕获数据
注意: 该位不适用于 UART4 和 UART5。
极性:CPOL:时钟极性 (Clock polarity)
该位允许用户在同步模式下选择 SCLK 引脚上时钟输出的极性。它与 CPHA 位结合使用可获得所需
的时钟/数据关系
0:空闲时 SCLK 引脚为低电平。上升沿有效
1:空闲时 SCLK 引脚为高电平。下降沿有效
该位不适用于 UART4 和 UART5。
USART结构体(异步):

typedef struct
{
  uint32_t USART_BaudRate;          //波特率设定,寄存器BRR

  uint16_t USART_WordLength;         //字长,CR1寄存器 M位

  uint16_t USART_StopBits;            //停止位 ,CR2寄存器 STOP位

  uint16_t USART_Parity;              //校验控制位,CR1寄存器 PCE,PS位
 
  uint16_t USART_Mode;   //模式选择,CR1寄存器 TE,RE(收数据使能,Receive Enable)位

  uint16_t USART_HardwareFlowControl;//硬件流选择,CR3寄存器 CTSE,RTSE位
} USART_InitTypeDef;

本文是参考野火视频个人学习总结性文章。

猜你喜欢

转载自blog.csdn.net/weixin_46468790/article/details/107198486