51单片机——UART 串口通信

目录

[一、UART 核心定义与通信属性](#一、UART 核心定义与通信属性)

[1.1 基础概念](#1.1 基础概念)

[1.2 UART 接线方式](#1.2 UART 接线方式)

二、通信核心分类与规则

[2.1 通信方式分类](#2.1 通信方式分类)

[2.2 数据传输核心规则](#2.2 数据传输核心规则)

三、串口通信关键参数与帧结构

[3.1 核心通信参数](#3.1 核心通信参数)

[3.2 字符帧结构](#3.2 字符帧结构)

[3.3 奇偶校验原理](#3.3 奇偶校验原理)

四、同步与异步通信区别

[五、51 单片机 UART 寄存器配置](#五、51 单片机 UART 寄存器配置)

[5.1 SCON 寄存器](#5.1 SCON 寄存器)

[5.2 PCON 寄存器](#5.2 PCON 寄存器)

[5.3 波特率产生配置](#5.3 波特率产生配置)

[5.4 中断允许配置](#5.4 中断允许配置)

六、主机与从机通信定义

七、重点内容


一、UART 核心定义与通信属性

1.1 基础概念

UART(Universal Asynchronous Receiver Transmitter)即通用异步收发器,是硬件电路中的通信接口,拥有独立的通信规则(协议),核心属性为异步、全双工、串行通信

  • 异步:无时钟线同步,通信双方通过预设参数保持节奏一致;
  • 全双工:双向同时通信,收发独立不冲突;
  • 串行:数据逐位依次传输,硬件成本低、抗干扰性强。

1.2 UART 接线方式

UART 通信需 4 根基础线路,核心遵循 "交叉连接" 原则:

  • VCC:接电源正极(为模块供电);
  • GND:接地(双方共地,确保电平参考一致);
  • RXD:数据接收线;
  • TXD:数据发送线;

**注意:**使用串口与外部设备进行通信时,需要交叉连接 TXD - RXD,RXD - TXD

二、通信核心分类与规则

2.1 通信方式分类

通信方式 数据传输方向 数据线数量 核心特点 适用场景
单工 单向固定 1 根 发送方和接收方固定,无法双向传输 红外遥控、串口打印(仅发送)
半双工 双向但不同时 1 根 双方可收发数据,但同一时刻仅能单向传输 对讲机、I2C 总线(软件半双工)
全双工 双向同时 2 根(TXD+RXD) 收发独立,可同时进行数据传输 单片机与电脑、蓝牙模块通信

三种通信方式

2.2 数据传输核心规则

**发送顺序:**遵循 LSB 优先的原则,低位先行。

示例:数据 0xA6(二进制 10100110):

| 位序号 | bit7 | bit6 | bit5 | bit4 | bit3 | bit2 | bit1 | bit0 |
| 发送数据 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 |

发送顺序 8 7 6 5 4 3 2 1

传输形式:

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

三、串口通信关键参数与帧结构

3.1 核心通信参数

串口通信参数格式为 "波特率 数据位 校验位 停止位",需双方完全一致才能正常通信:

  • 波特率:每秒传输的二进制位数(bit/s),常用值为 2400、4800、9600、115200;
  • 数据位:每帧数据的有效位数,常用 8 位;
  • 校验位:用于检测传输错误,分 3 类:
    • 奇校验(O):数据位中 "1" 的个数 + 校验位 = 奇数;
    • 偶校验(E):数据位中 "1" 的个数 + 校验位 = 偶数;
    • 无校验(N):无需校验位(最常用);
  • 停止位:每帧数据的结束标志,常用 1 位。
  • 示例参数:9600 8 N 1(9600 波特率、8 位数据位、无校验、1 位停止位)。

3.2 字符帧结构

每帧数据(1 个字符)的传输顺序为:空闲→起始位→数据位→校验位→停止位→空闲
串口通信时序图

  • 起始位:1 位低电平(0),标识数据开始;
  • 数据位:5~9 位(常用 8 位),按 LSB 优先传输;
  • 校验位:0 或 1 位(依校验方式选择);
  • 停止位:1~2 位高电平(1),标识数据结束。

3.3 奇偶校验原理

  • 奇校验:
    • 若数据位 "1" 的个数为偶数,校验位为 "1",使总个数为奇数;若为奇数,校验位为 "0";
  • 偶校验:
    • 若数据位 "1" 的个数为奇数,校验位为 "1",使总个数为偶数;若为偶数,校验位为 "0"。

核心局限:仅能检测奇数个 bit 错误,无法检测偶数个错误;

四、同步与异步通信区别

  • 同步通信:双方通过时钟线同步通信频率,节奏一致;
  • 异步通信:无时钟线,依赖预设参数(波特率等)保持同步,UART 即采用此类方式。

五、51 单片机 UART 寄存器配置

UART 功能通过 SCON、PCON 寄存器及定时器 1(波特率发生器)配置

5.1 SCON 寄存器

  • 将 SCON 寄存器中的 bit6 和 bit7 清 0
  • 再将 SCON 寄存器中的 bit6 置 1,代表串口工作在 8 位 UART,波特率可变模式
  • 将 SCON 寄存器中的 REN 位置 1,代表允许串口接收数据:
  • TI 位,用来查询 8 位数据是否发送完毕,发送完毕后会自动置 1;必须用软件清 0
  • RI 位,用来查询 8 位数据是否接收完毕,接收完毕后会自动置 1;必须用软件清 0

5.2 PCON 寄存器

  • 将 PCON 寄存器中的 SMOD 位置 1,波特率翻倍
  • 将 PCON 寄存器中的 SMOD0 位清 0,代表通过 SCON 寄存器中的 SM0 和 SM1 这两个位共同指定串口工作模式

5.3 波特率产生配置

  • 依赖模块:定时器 1(作为波特率发生器);

  • 定时器 1 模式:需配置为8 位自动重装载模式(TMOD 寄存器中 M1=1、M0=0);

  • 初值计算公式:

    • FOSC:单片机晶振频率(常用 11.0592MHz 或 12MHz);
    • SMOD:PCON 寄存器中的波特率加倍位(0 或 1);
  • 辅助配置:TCON 寄存器中 TR1=1(启动定时器 1),TF1(溢出标志位)可通过软件清 0。

5.4 中断允许配置

  • 需开启总中断允许位 EA(IE 寄存器 B7 位),EA=1;
  • 开启串口中断允许位 ES(IE 寄存器 B4 位),ES=1;
  • IE 寄存器地址:A8H(可位寻址),其他位无需改动(默认清 0)。

5.5 串口初始化顺序

六、主机与从机通信定义

  • 主机:拥有通信绝对控制权,所有通信由主机发起;
  • 从机:无法主动发起通信,仅根据主机下发的指令执行对应操作,并向主机回复应答。

七、重点内容

  1. 串口概念
  2. 单工、半双工、全双工区别
  3. 串口发送数据的顺序
  4. 串行和并行的概念及区别
  5. 串口通信的时序/过程
  6. 奇校验和偶校验
  7. 串口通信的参数(波特率、数据位、校验位、停止位)
  8. 常见的波特率
  9. 同步和异步的概念
  10. 串口的波特率是如何产生的
  11. 串口波特率产生所依赖的定时器模式
  12. 16 位定时器和8位自动重装载定时器的区别
  13. 主机和从机
  14. Modbus 协议的数据格式
相关推荐
Amrzs_hp6 小时前
stm32温度采集
stm32·单片机·嵌入式硬件
想放学的刺客11 小时前
单片机嵌入式试题(第29期)嵌入式系统的电源完整性设计与去耦电容选型。抗干扰设计与EMC合规性
c语言·stm32·嵌入式硬件·物联网·51单片机
代码游侠13 小时前
学习笔记——Linux字符设备驱动开发
linux·arm开发·驱动开发·单片机·嵌入式硬件·学习·算法
czhaii13 小时前
STC32G.H中文注释各寄存器特殊功能寄存器作用
单片机·嵌入式硬件
码农三叔13 小时前
(9-3)电源管理与能源系统:充电与扩展能源方案
人工智能·嵌入式硬件·机器人·能源·人形机器人
集芯微电科技有限公司13 小时前
15V/2A同步开关型降压单节/双节锂电池充电管理IC支持输入适配器 DPM 功能
c语言·开发语言·stm32·单片机·嵌入式硬件·电脑
零一iTEM14 小时前
TPS61088大功率升压模块
嵌入式硬件·硬件工程·学习方法
MAR-Sky14 小时前
ws2812幻彩灯珠使用stc/AI8G1K08控制
单片机·嵌入式硬件
宵时待雨14 小时前
STM32笔记归纳7:EXTI
笔记·stm32·单片机·嵌入式硬件
古译汉书15 小时前
部分.exe文件打开但是一直显示界面,点击任务栏持续无反应
开发语言·单片机·嵌入式硬件