嵌入式第四十六篇——51单片机基础——UART通信

一、UART 基本概念

UART(Universal Async Receiver Transmitter),即通用异步收发器 ,是一种硬件接口及通信协议,用于设备间的异步串行通信。核心特性:

  • 通信模式:异步、全双工、串行
  • 无需时钟线同步,通过约定参数保证数据传输一致性

二、UART 接线方式

UART 核心接线引脚共 4 个,通信时需遵循交叉连接原则:

引脚 功能 接线注意事项
VCC 接电源正极 需与外设电源电压匹配
GND 接地 必须共地,否则会出现信号干扰
RXD 数据接收线 与外设的 TXD 引脚相连
TXD 数据发送线 与外设的 RXD 引脚相连

关键规则:设备 A 的 TXD ↔ 设备 B 的 RXD;设备 A 的 RXD ↔ 设备 B 的 TXD。

三、通信方式分类(按数据传输方向)

通信方式 核心特点 数据线数量 传输方向限制
单工 收发角色固定 1 根 仅单向传输
半双工 收发角色可切换 1 根 同一时刻仅能单向传输
全双工 收发角色可同时进行 2 根 任意时刻双向传输(UART 采用此方式)

四、数据传输形式:串行 vs 并行

传输形式 传输原理 优缺点
串行 单根数据线,数据按 bit 位顺序逐个发送 优点:硬件成本低、传输距离远、抗干扰性好缺点:传输速率慢
并行 多根数据线,多个 bit 位同时发送 优点:传输速率快缺点:硬件成本高、传输距离近、抗干扰性差(易受信号偏移和电磁干扰)

五、UART 数据发送顺序

遵循 LSB(最低位)优先 原则,低位先行发送。示例:发送数据 0xA6(二进制 10100110

位序号 bit7(MSB) bit6 bit5 bit4 bit3 bit2 bit1 bit0(LSB)
数据值 1 0 1 0 0 1 1 0
发送顺序 8 7 6 5 4 3 2 1

六、串口通信核心参数(4 大参数)

通信双方必须参数一致,否则会出现数据乱码,格式表示为 波特率 数据位 校验位 停止位

  1. 波特率
    • 定义:每秒传输的 bit 数,衡量传输速率
    • 常用值:2400、4800、9600、115200
  2. 数据位
    • 定义:每个数据帧中有效数据的 bit 位数
    • 常用值:8 位(最常用)
  3. 校验位
    • 作用:用于检测数据传输错误(无法检测偶数个 bit 错误)
    • 类型:
      • N(None):无校验
      • E(Even):偶校验,数据位 + 校验位的 1 的总数为偶数
      • O(Odd):奇校验,数据位 + 校验位的 1 的总数为奇数
  4. 停止位
    • 定义:每个数据帧的结束标志位
    • 常用值:1 位

常见参数组合:9600 8 N 1、2400 8 E 1、115200 8 O 1

七、同步通信 vs 异步通信

通信类型 同步方式 硬件需求 核心特点
同步 时钟线同步通信频率 需时钟线 传输精度高,硬件复杂
异步 无时钟线,靠约定参数同步 无需时钟线 硬件简单,UART 采用此方式

八、UART 相关寄存器配置(以 51 单片机为例)

1. SCON 寄存器(串口控制寄存器)

配置操作 功能说明
清 0 bit6、bit7 初始化串口模式相关位
置 1 bit6 串口工作在 8 位 UART 模式,波特率可变
置 1 REN 位 允许串口接收数据
TI 位 发送中断标志位:数据发送完毕自动置 1,需软件清 0
RI 位 接收中断标志位:数据接收完毕自动置 1,需软件清 0

2. PCON 寄存器(电源控制寄存器)

配置操作 功能说明
置 1 SMOD 位 波特率翻倍
清 0 SMOD0 位 由 SCON 的 SM0、SM1 位指定串口工作模式

3. 波特率计算(定时器 1 8 位自动重装模式)

  • 需根据目标波特率计算定时器初值
  • 主机与从机的波特率必须一致

九、主机与从机的概念

角色 核心权限 通信逻辑
主机 拥有通信绝对控制权 主动发起通信,下发指令
从机 无主动通信权 接收主机指令,执行操作并回复应答
相关推荐
留白_2 分钟前
MySQL学习(9)——索引
学习
我是一棵无人问荆的小草10 分钟前
单片机通电后延迟启动策略
单片机·嵌入式硬件
坏柠27 分钟前
ESP32-S3 蓝牙 BLE 从零到一:广播、服务、特征,用一个智能灯的例子全讲透
嵌入式硬件
请你喝好果汁64129 分钟前
生信学习笔记:ArchR 处理小麦单细胞 ATAC-seq 中的细胞数差异与 Embedding 报错调试
学习
jinanwuhuaguo1 小时前
OpenClaw、飞书、Claude Code、Codex:四维AI生态体系的深度解构与颗粒化对比分析
大数据·人工智能·学习·飞书·openclaw
萨文 摩尔杰1 小时前
GPS原理学习
学习·fpga开发
fengci.2 小时前
ctfshow(web入门)295-300
java·开发语言·学习
三佛科技-187366133974 小时前
FT32F030F6AP7高性能32位RISC内核MCU解析(兼容STM32F030K6TP7)
stm32·单片机·嵌入式硬件
renhongxia14 小时前
多模态融合驱动下的具身学习机制研究
运维·学习·机器人·自动化·知识图谱
今儿敲了吗4 小时前
46| FBI树
数据结构·c++·笔记·学习·算法