news 2026/4/15 20:41:00

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
嵌入式第四十六篇——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)bit6bit5bit4bit3bit2bit1bit0(LSB)
数据值10100110
发送顺序87654321

六、串口通信核心参数(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 位自动重装模式)

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

九、主机与从机的概念

角色核心权限通信逻辑
主机拥有通信绝对控制权主动发起通信,下发指令
从机无主动通信权接收主机指令,执行操作并回复应答
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 12:41:45

Keil MDK C语言编译器设置:完整示例说明

Keil MDK 编译器配置实战:从调试到性能极致优化在嵌入式开发的世界里,写代码只是第一步。真正决定系统能否稳定运行、响应及时、功耗可控的,往往是那些藏在.uvprojx文件背后的一行行编译选项。你有没有遇到过这样的场景?- 程序明明…

作者头像 李华
网站建设 2026/4/10 20:18:03

Qwen2.5-0.5B-Instruct供应链优化:需求预测AI系统实战

Qwen2.5-0.5B-Instruct供应链优化:需求预测AI系统实战 1. 引言:轻量大模型在供应链场景的落地契机 随着企业对实时决策和边缘智能的需求日益增长,传统依赖云端大模型的AI系统面临延迟高、成本大、数据隐私暴露等挑战。尤其在供应链管理领域…

作者头像 李华
网站建设 2026/4/15 18:05:13

零基础玩转Qwen3-Embedding-4B:SGlang镜像保姆级教程

零基础玩转Qwen3-Embedding-4B:SGlang镜像保姆级教程 1. 引言:为什么选择 Qwen3-Embedding-4B? 在当前信息爆炸的时代,高效、精准的文本检索与语义理解能力已成为智能系统的核心需求。无论是构建企业级搜索服务、实现跨语言内容…

作者头像 李华
网站建设 2026/4/14 20:43:15

实现订单自动关闭机制——电商系统中的定时任务设计与实践

【精选优质专栏推荐】 《AI 技术前沿》 —— 紧跟 AI 最新趋势与应用《网络安全新手快速入门(附漏洞挖掘案例)》 —— 零基础安全入门必看《BurpSuite 入门教程(附实战图文)》 —— 渗透测试必备工具详解《网安渗透工具使用教程(全)》 —— 一站式工具手册《CTF 新手入门实战教…

作者头像 李华
网站建设 2026/4/15 18:03:20

更弱智的算法学习 day36

1049. 最后一块石头的重量 II 可以这么理解,有一个target sums // 2,也即有一个目标数组和的一半,把他视为石头一半重量,想要达到的最大价值也即石头一般的重量,每个石头的价值和重量都是他本身。 确定dp数组&#x…

作者头像 李华
网站建设 2026/4/15 5:00:08

渗透测试——Funbox2靶机渗透提权详细过程(FTP匿名登陆与SSH爆破)

今天继续给大家带来vulnhub系列的Funbox2靶机详细的渗透横提权过程; 本次渗透过程,也是学到了新知识: FTP匿名登陆下载文件使用SSH爆破工具登陆用户SUDO提权 文章目录前置准备信息收集访问http页面漏洞一:FTP(匿名登录功能)漏洞二…

作者头像 李华