串口通信学习笔记

串口通信协议简介

物理层:规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输。其实就是硬件部分。
协议层:协议层主要规定通讯逻辑,统一收发双方的数据打包、解包标准。其实就是软件部分。

物理层

232与TTL区别:
TTL电平是从芯片里出来的0-3.3/5V
RS232 ±15V 1是+15V 0是-15V

1-RS232标准
RS232标准串口通讯结构图:(DB9接口,9根针,用来与另外设备通讯)
在这里插入图片描述
注:
1、RS232标准串口主要用于工业设备直接通信(抗干扰强,容错率高,如静电粉尘震动)
2、电平转换芯片一般有MAX3232,SP3232

2-USB转串口(TTL)

USB转串口通讯结构图:
在这里插入图片描述
注:
1、USB转串口主要用于设备跟电脑通信
2、电平转换芯片一般有CH340、PL2303、CP2102、FT232
3、使用的时候电脑端需要安装电平转换芯片的驱动

3-原生的串口到串口(TTL—>TTL)

原生的串口到串口通讯结构图:
在这里插入图片描述
注:
1、原生的串口通信主要是控制器跟串口的设备或者传感器通信,不需要经过电平转换芯片来转换电平,直接就用TTL电平通信
2、GPS模块、GSM模块、串口转WIFI模块、HC04蓝牙模块

协议层

串口数据包的基本组成
在这里插入图片描述
起始位:由1个逻辑 0 的数据位表示
结束位:由 0.5、 1、 1.5 或 2 个逻辑 1 的数据位表示 通常用1个位
有效数据:在起始位后紧接着的就是有效数据,有效数据的长度常被约定为 5、 6、 7 或 8 、9位长
校验位:可选,为的是数据的抗干扰性。
校验方法分为:
1-奇校验(odd)
2-偶校验(even)
3-0校验(space)
4-校验(mark)
5-无校验(noparity)

串口功能框图讲解

引脚

功能:
TX:数据发送
RX:数据接收
SCLK :时钟,仅同步通信时使用 一般不用
nRTS:请求发送(Request To Send) 很少用
nCTS:允许发送(Clear To Send) 很少用

引脚:
在这里插入图片描述
S Synchronous 同步 所以无后三个引脚
注意:当使用串口2345时,需要打开APB1总线时钟
串口2具有重映射功能 可以用PD脚来实现
在这里插入图片描述

数据寄存器

USART_DR:9位有效,包含一个发送数据寄存器TDR和一个接收数据寄存器RDR。一个地址对应了两个物理内存。
在这里插入图片描述
下面一节查参考手册,中文
有效帧内容及寄存器:
USART_CR1:M:字长,0:8bit,1:9bit
USART_CR2:STOP:停止位,用来设置停止位的位数
USART_CR1:PCE:检验控制使能、PS:校验选择、PEIE:PE使能中断
USART_SR :PE :校验错误

控制器

数据收发流程:
USART_CR1:UE:USART使能、TE:发送使能、RE:接受使能
USART_SR:TXE,Transmit data register empty发送数据寄存器为空
USART_CR1:TXEIE 发送数据寄存器为空使能中断
USART_SR:TC,Transmission complete 发送完成
USART_CR1:TCIE 发送完成使能中断
USART_SR:RXNE,Read data register not empty 接收数据寄存器非空
USART_CR1:RXNEIE 接收数据寄存器非空使能中断

波特率

每秒钟要发送多少数据(二进制)
波特率寄存器
USART_BRR:波特率寄存器 分整数和小数部分
在这里插入图片描述
波特率计算
在这里插入图片描述
USARTDIV:无符号的定点数
Fck:串口的时钟,注 区分APB2(1)和APB1(2345)两条总线

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_37676403/article/details/90413666