嵌入式第四十六篇——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 位自动重装模式)

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

九、主机与从机的概念

角色 核心权限 通信逻辑
主机 拥有通信绝对控制权 主动发起通信,下发指令
从机 无主动通信权 接收主机指令,执行操作并回复应答
相关推荐
saoys2 小时前
Opencv 学习笔记:精准提取图像中的水平线 / 垂直线(形态学操作实战)
笔记·opencv·学习
独处东汉2 小时前
AI辅助Stm32l031项目开发调试板子printf
stm32·单片机·嵌入式硬件
2301_772204282 小时前
嵌入式——51单片机的基本知识
单片机·嵌入式硬件·51单片机
0和1的舞者2 小时前
《#{} vs ${}:MyBatis 里这俩符号,藏着性能与安全的 “生死局”》
java·数据库·学习·mybatis·intellij idea·mybatis操作
2501_918126912 小时前
国标麻将一抽胡
前端·学习·html·个人开发
石像鬼₧魂石2 小时前
补充章节:WPScan 实战后的 “打扫战场 + 溯源” 流程
数据库·学习·mysql
MarkHD8 小时前
智能体在车联网中的应用:第51天 模仿学习与离线强化学习:破解数据效率与安全困局的双刃剑
学习·安全
Drawing stars10 小时前
JAVA后端 前端 大模型应用 学习路线
java·前端·学习
崇山峻岭之间10 小时前
Matlab学习记录33
开发语言·学习·matlab