一、UART
1.UART概念:
- Unversial Aysnc Recevier Transmitter,通用异步收发器,与外界设备进行异步信方式
- 硬件电路中的接口,UART有一套自己通信的规则,协议
- 异步、全双工、串行通信协议
2.UART接线方式:
- VCC:接电源正极
- GND:接地
- RXD:数据接收线
- TXD:数据发送线
3.通信方式:
- 单工
- 通信时,数据接收方和发送方是固定的
- 数据传输时,通过一根数据线进行传输
- 数据传输的方向是单一的
- 半双工
- 通信双方既可以作为数据的发送方,也可以作为数据接收方
- 数据传输时,通过一根数据线进行传输
- 数据传输的方向可以是双向的,但在同一时刻传输的方向必须是单向的(A
- 给B发的时候,B不能给A发。B给A发的时候,A也不能给B发)
- 全双工
- 通信双方既可以作为数据的发送方,也可以作为数据接收方
- 数据传输时,通过两根数据线进行传输
- 数据传输的方向在任意时刻都是双向的(数据的收发可以同时进行)
二、UART发送方式
1.UART发送数据顺序
遵循LSB优先原则,低位先行

2.数据传输形式
- 串行
- 通过一根数据线将多个bit按照先后次序,逐个bit逐个bit发送
- 传输速率慢
- 硬件成本低
- 传输距离远,抗干扰性好
- 并行
- 通过多根数据线将多个bit同时发送
- 传输速率快
- 硬件成本高
- 传输距离近,抗干扰性差(距离增加后会造成多根数据线的信号偏移,会
- 受到电磁波的干扰,会出现一些误差)
3.串行通信的时序图

4.奇偶校验
不足:无法判断偶数个bit出错的问题
奇校验:
奇校验的校验位为'1',若数据位中'1'的个数加上校验位的'1',保持'1'的总
个数是奇数个,代表奇校验通过
偶校验:
偶校验的校验位为'0',若数据位中'1'的个数加上校验位的'0',保持'1'的总
个数是偶数个,代表偶校验通过
无校验:
不需要校验位
5.串口通信参数(波特率 数据位 校验位 停止位)
| 串口参数组合 | 波特率 | 数据位 | 校验位 | 停止位 |
|---|---|---|---|---|
| 9600 8 N 1 | 9600 | 8 | 无校验(N) | 1 |
| 2400 8 E 1 | 2400 | 8 | 偶校验(E) | 1 |
| 115200 8 O 1 | 115200 | 8 | 奇校验(O) | 1 |
6.同步与异步的区别
| 对比维度 | 同步通信 | 异步通信 |
|---|---|---|
| 时钟线情况 | 存在独立时钟线 | 无独立时钟线 |
| 同步方式 | 依赖时钟线统一通信频率 | 依赖数据帧的起始 / 停止位、波特率约定 |
| 传输效率 | 高(无额外同步位开销) | 较低(包含起始 / 停止位等开销) |
| 硬件复杂度 | 较高(需时钟线及同步逻辑) | 较低(仅需数据线) |
| 数据帧结构 | 通常为连续数据流(无额外同步位) | 以帧为单位,包含起始位、数据位、校验位、停止位 |
| 使用场景 | 高速、长距离(如 SPI、I2C) | 低速、短距离(如 UART 串口) |
三、串口相关寄存器配置
1.SCON寄存器


- 将SCON寄存器中的bit6和bit7清0
- 再将SCON寄存器中的bit6置1,代表串口工作在8位UART,波特率可变模式

- 将SCON寄存器中的REN位置1,代表允许串口接收数据

- TI位,用来查询8位数据是否发送完毕,发送完毕后会自动置1;必须用软件清0

- RI位,用来查询8位数据是否接收完毕,接收完毕后会自动置1;必须用软件清0
2.PCON寄存器

- 将PCON寄存器中的,SMOD位置1,波特率翻倍
- 将PCON寄存器中的,SMOD0位清0,代表通过SCON寄存器中的SM0和SM1这两个位共同指定串口
波特率 定时器初值(定时器1 8位自动重装)计算:

工作模式:

TCON寄存器:

IE寄存器

四、主机和从机
主机:主机拥有对通信的绝对控制权,通信都是由主机发起
从机:从机不能直接发起通信,根据主机下发的指令完成对应的控制,并回复给主机应答