news 2026/5/1 9:04:58

学习笔记——UART(通用异步收发器)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
学习笔记——UART(通用异步收发器)

UART(通用异步收发器)

一、基本概念

  1. UART定义:Universal Asynchronous Receiver Transmitter

    • 通用异步收发器,用于异步通信的硬件接口

    • 包含自己的一套通信规则和协议

    • 特点:异步、全双工、串行通信协议

二、硬件连接

接线方式

MCU <---> 外部设备 TXD <---> RXD (发送线对接收线) RXD <---> TXD (接收线对发送线) VCC <---> VCC (电源正极) GND <---> GND (接地)

注意:必须交叉连接(TXD接RXD,RXD接TXD)

三、通信方式

类型数据线数据传输方向特点
单工1根单向固定一方固定发送,一方固定接收
半双工1根双向分时双方都能收发,但不能同时进行
全双工2根双向同时双方可同时收发数据(UART采用)

四、数据传输特点

1. 发送顺序

LSB优先原则(低位先行)

数据:A6 = 1010 0110 发送顺序:0 → 1 → 1 → 0 → 0 → 1 → 0 → 1 LSB MSB

2. 传输形式比较

类型数据线传输速率硬件成本传输距离抗干扰性
串行1根
并行多根

并行传输问题:距离增加会导致信号偏移和电磁干扰

五、通信时序

数据帧格式

起始位 + 数据位(5-9位) + 校验位(可选) + 停止位(1/1.5/2位)
  • 起始位:1位低电平(0)

  • 停止位:1位或多位高电平(1)

六、奇偶校验

1. 校验类型

类型校验位校验规则局限性
奇校验'1'数据位'1'+校验位=奇数个'1'无法检测偶数个bit错误
偶校验'0'数据位'1'+校验位=偶数个'1'无法检测偶数个bit错误
无校验无校验位无错误检测

2. 校验示例

数据:1010 0110 (有4个'1') 奇校验:校验位=1(总共有5个'1',奇数) 偶校验:校验位=0(总共有4个'1',偶数)

七、通信参数

格式波特率 数据位 校验位 停止位

9600 8 N 1 → 波特率9600,8位数据,无校验,1位停止位 2400 8 E 1 → 波特率2400,8位数据,偶校验,1位停止位 115200 8 O 1 → 波特率115200,8位数据,奇校验,1位停止位

常见波特率:

2400, 4800, 9600, 19200, 38400, 57600, 115200

八、同步与异步

类型时钟线特点
同步有时钟线同步通信频率
异步无时钟线,UART采用此方式

九、串口寄存器配置(以51单片机为例)

1. SCON寄存器配置

SCON &= ~(3 << 6); // 清bit6、bit7(SM0、SM1) SCON |= (1 << 6); // 设置SM0=0,SM1=1 → 模式1:8位UART,波特率可变 SCON |= (1 << 4); // 设置REN=1,允许接收数据

2. SCON重要标志位

  • TI(发送中断标志)

    • 8位数据发送完毕后自动置1

    • 必须用软件清零

    • TI = 0;

  • RI(接收中断标志)

    • 8位数据接收完毕后自动置1

    • 必须用软件清零

    • RI = 0;

3. PCON寄存器配置

PCON |= (1 << 7); // SMOD=1,波特率翻倍 PCON &= ~(1 << 6); // SMOD0=0,通过SM0和SM1确定串口模式

十、波特率计算

定时器1工作模式(8位自动重装)

  • 波特率公式

    波特率 = (2^SMOD × 晶振频率) / (32 × 12 × (256 - TH1))
  • 常用波特率对应的初值(12MHz晶振,SMOD=1):

    9600 → TH1 = 0xFD 4800 → TH1 = 0xFA 2400 → TH1 = 0xF4

十一、主机与从机概念

角色功能特点
主机拥有通信控制权发起通信,发送指令
从机响应主机指令不能主动发起,只能应答

十二、重点内容总结

  1. 串口概念:异步、全双工、串行通信

  2. 通信方式区别:单工(单向)、半双工(双向分时)、全双工(双向同时)

  3. 发送顺序:LSB优先,低位先行

  4. 串行vs并行:串行-单线慢成本低,并行-多线快成本高

  5. 通信时序:起始位+数据位+校验位+停止位

  6. 奇偶校验:奇校验-总'1'数为奇数,偶校验-总'1'数为偶数

  7. 通信参数:波特率、数据位、校验位、停止位

  8. 常见波特率:2400、9600、115200等

  9. 同步vs异步:有无时钟线同步

  10. 波特率产生:依靠定时器1(通常模式2,8位自动重装)

  11. 定时器模式:16位定时器需软件重装,8位自动重装自动重载

  12. 16位vs8位定时器:16位-范围大需软件干预,8位-范围小但自动重装

  13. 主机vs从机:主机主动发起,从机被动响应

  14. Modbus协议:常见的主从式通信协议格式

十三、关键知识点

  • 数据帧结构:理解起始位、数据位、校验位、停止位的组合

  • 波特率计算:掌握定时器初值计算方法

  • 寄存器操作:熟练掌握SCON、PCON的位操作

  • 工作模式:掌握模式1(8位UART,波特率可变)的配置

  • 通信流程:理解数据收发的中断处理流程

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/30 15:28:47

dlx求解数独duckdb插件的编写和使用

1.将网上下载的dlx求解c程序添加int sudoku(const char *s,char *r)函数处理81个字符长的数独题目字符串 #include <cstdio> #include <cstring> #include <ctime> int cnt0; const int XSIZE 3; const int SIZE XSIZE * XSIZE; const int MAX_C SIZE *…

作者头像 李华
网站建设 2026/5/1 6:08:51

这份无线联网智能门锁系统清单非常专业,清晰地勾勒出了一套适用于多业态、高流动性、强管理场景的现代化出入口解决方案。这不仅是设备清单,更是一套“去中心化部署、云端化管理”的智慧运营蓝图。

无线联网智能门锁系统——专为公寓、办公、宿舍、民宿与酒店打造的全场景智能门禁解决方案这套无线联网智能门锁系统&#xff0c;专为高流动性、多权限管理的场景设计&#xff0c;已广泛应用于公寓、企业宿舍、办公场所、民宿及酒店等环境&#xff0c;实现“一卡通行、远程管控…

作者头像 李华
网站建设 2026/5/1 6:14:38

动漫生成服务SLA保障:AnimeGANv2高可用部署架构

动漫生成服务SLA保障&#xff1a;AnimeGANv2高可用部署架构 1. 引言 1.1 业务场景描述 随着AI图像风格迁移技术的普及&#xff0c;用户对“照片转动漫”类应用的需求迅速增长。尤其在社交娱乐、头像生成、内容创作等领域&#xff0c;基于AnimeGANv2的二次元转换服务因其画风…

作者头像 李华
网站建设 2026/5/1 7:17:04

避坑指南:通义千问2.5-7B-Instruct本地部署常见问题解决

避坑指南&#xff1a;通义千问2.5-7B-Instruct本地部署常见问题解决 1. 引言 1.1 业务场景描述 随着大模型在企业级应用和开发者项目中的普及&#xff0c;越来越多团队选择将高性能、可商用的开源模型部署至本地环境&#xff0c;以实现数据隐私保护、低延迟响应和定制化功能…

作者头像 李华
网站建设 2026/5/1 6:12:36

AnimeGANv2与Stable Diffusion对比:谁更适合二次元转换?

AnimeGANv2与Stable Diffusion对比&#xff1a;谁更适合二次元转换&#xff1f; 1. 背景与需求分析 随着AI生成技术的快速发展&#xff0c;将真实照片转换为二次元动漫风格已成为图像生成领域的重要应用场景。无论是用于社交头像生成、虚拟角色设计&#xff0c;还是艺术创作辅…

作者头像 李华
网站建设 2026/4/23 15:24:39

Keil环境下51单片机流水灯代码生成操作指南

从零开始点亮第一盏灯&#xff1a;Keil环境下51单片机流水灯实战全记录还记得你第一次看到LED闪烁时的兴奋吗&#xff1f;那种“我写的代码真的在控制物理世界”的震撼感&#xff0c;是每个嵌入式工程师都无法忘记的起点。今天&#xff0c;我们就从最经典的项目——流水灯入手&…

作者头像 李华