学习笔记——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,波特率可变)的配置

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1160646.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

List、Set的相似性

1. 在 MyBatis 的 mapper.xml 文件中&#xff0c;List 和 Set 的遍历方式是完全一样的。 这是因为 MyBatis 的 <foreach> 标签在底层处理时&#xff0c;并不严格区分具体的集合类型&#xff08;List、Set 等&#xff09;&#xff0c;它统一将它们视为一个 Iterable 对象&…

RAGFlow 全面接入 MinerU 2.0,支持 pipeline、vlm-transformers、vlm-sglang 三种模式,解析精度大幅度up

重磅升级&#xff01;RAGFlow全面接入MinerU 2.0&#xff1a;三大模式解锁复杂文档解析新高度在企业级RAG&#xff08;检索增强生成&#xff09;落地过程中&#xff0c;“文档解析精度”始终是决定应用效果的核心瓶颈——扫描件的模糊文本识别错误、表格结构还原失真、多模态内…

一文彻底搞懂算力计算:CPU与GPU的核心方法全解析

在AI大模型训练/推理、高性能计算&#xff08;HPC&#xff09;、数据中心运维等场景中&#xff0c;“算力”是衡量硬件性能的核心指标&#xff0c;也是方案选型、成本评估的关键依据。但很多开发者对算力的理解仅停留在“TOPS”“FLOPS”等名词层面&#xff0c;不清楚其具体计算…

突然发现 AI Agent设计思路真的好清晰

AI Agent 作为具备自主行为能力的智能体&#xff0c;其系统架构设计对功能实现与性能表现至关重要。本文基于 LLM 的AI Agent系统架构设计&#xff0c;分四部分展开。 &#x1f4cd;系统架构 系统架构&#xff0c;有三层。工具层像个采购员&#xff0c;从外面的 API、数据库啥的…

终于有人把数据血缘说明白了

在与众多同行和读者的交流中&#xff0c;笔者察觉到“数据血缘”这一概念被频繁提及&#xff0c;然而大多数人对其背后的深层价值、技术实现路径以及可能遇到的难题&#xff0c;还缺乏深刻的理解。简单来说&#xff0c;掌握数据血缘&#xff0c;可以在数据出现问题时迅速找到根…

论文与期刊的级别

在科技项目申报、人才评价等场景中&#xff0c;论文和期刊的级别划分主要依据期刊的学术影响力、收录范围、主管单位等维度&#xff0c;不同地区和行业的认定标准略有差异&#xff0c;以下是通用的分级体系及说明&#xff1a;一、 期刊的常见级别划分期刊的级别是判定论文学术价…

24家科技巨头参与,美国“创世纪计划”有什么样的野心?

2025年11 月 24 日&#xff0c;特朗普在白宫正式签署行政令&#xff0c;启动了被外界称为 “AI 版曼哈顿计划 ” 的 “ 创世纪计划 ” &#xff08; The Genesis Mission &#xff09;。“创世纪”一词源自《圣 经》&#xff0c;特朗普为这项国家级AI任务冠以此名&#xff0c;足…

sql 如果字段为空就用另一个字段

您可以使用 COALESCE() 函数 或 CASE WHEN 表达式来处理这个逻辑&#xff1a; 方案一&#xff1a;使用 COALESCE() 函数&#xff08;推荐&#xff09; SELECTbpi.batch_id AS batchId,bpi.batch_name AS batchName,bpi.plate_name AS plateName,bpi.category AS productType,bp…

Android 基础入门教程2.5.2 GridView(网格视图)的基本使用

2.5.2 GridView(网格视图)的基本使用 分类 Android 基础入门教程 本节引言&#xff1a; 本节给大家介绍的是第二个Adapter类的控件——GridView(网格视图)&#xff0c;见名知义&#xff0c;ListView是列表&#xff0c; GridView就是显示网格&#xff01;他和ListView一样是Ab…

Android 基础入门教程2.5.3 Spinner(列表选项框)的基本使用

2.5.3 Spinner(列表选项框)的基本使用 分类 Android 基础入门教程 本节引言&#xff1a; 本来本节是想给大家介绍一个Gallery(画廊)的一个控件的&#xff0c;后来想想还是算了&#xff0c;因为 在Android 4.1后就已经被弃用了&#xff0c;尽管我们可以通过兼容不来使用Galler…

AI赋能央企数智化转型研究报告:AI赋能央企转型应用现状、AI赋能央企转型路径与挑战、AI赋能央企转型服务商体系、未来展望

本报告全面描绘了AI驱动央企数智化转型的宏大图景。其核心逻辑是&#xff1a;在国家战略强力驱动下&#xff0c;央企正以AI为核心引擎&#xff0c;通过构建自主可控的技术底座、推动AI向全业务核心场景深度渗透、并牵头构建协同创新的产业生态&#xff0c;最终实现自身高质量发…

大模型推理框架对比:SGLang 与 vLLM 的核心差异解析

在大模型推理引擎领域&#xff0c;vLLM 凭借高效的 KV 缓存管理与连续批处理技术&#xff0c;成为高并发场景的主流选择&#xff1b;而同源&#xff08;LMSYS Org&#xff09;的 SGLang 则以“结构化生成”为核心突破&#xff0c;重新定义了复杂 LLM 应用的开发范式。两者虽师出…

​ Android 基础入门教程​2.5.4 AutoCompleteTextView(自动完成文本框)的基本使用

2.5.4 AutoCompleteTextView(自动完成文本框)的基本使用 分类 Android 基础入门教程 本节引言&#xff1a; 本节继续来学习Adapter类的控件&#xff0c;这次带来的是AutoCompleteTextView(自动完成文本框)&#xff0c; 相信细心的你发现了&#xff0c;和Adapter搭边的控件&am…

Agent搭建-超详细教程,存一下吧

AI Agent在于其能自动执行复杂任务&#xff0c;大幅提升自动化和智能决策的效率&#xff0c;让任务自动化&#xff0c;主要包括感知、记忆、规划与决策、行动/使用工具。 AI Agent的工作原理分为几个步骤。 ✔首先是感知&#xff0c;AI Agent通过传感器感知物理或虚拟环境中的变…

事务中的隔离性是如何保证的呢?(你解释一下MVCC)

事务的隔离性通过锁和多版本并发控制&#xff08;MVCC&#xff09;来保证。MVCC通过维护数据的多个版本来避免读写冲突。底层实现包括隐藏字段、undo log和read view。隐藏字段包括trx_id和roll_pointer。undo log记录了不同版本的数据&#xff0c;通过roll_pointer形成版本链。…

数据治理到底应该怎么治理?治理什么?在哪治理?治理路径是什么?治理流程又是什么?附案例及解决方案

数据治理是对组织内数据资产的系统性管理&#xff0c;核心是建立权责清晰的组织、统一的规范&#xff08;标准、质量、安全&#xff09;以及可持续的流程。其治理对象覆盖数据的全生命周期&#xff0c;治理范围贯穿所有业务与系统。治理路径应以价值为导向&#xff0c;从关键业…

如何在liunx环境安装PageAdmin Cms系统

web系统一般建议安装在srv/wwwoot目录下&#xff0c;下面步骤演示如何安装pageadmin版本。 1、进入srv目录&#xff0c;创建wwwroot/demo目录&#xff0c;生产环境demo替换为网站标识或域名标识&#xff0c;方便后期识别。2、上传web文件zip压缩包到 /srv/wwwroot/demo目录下解…

2026常见的企业网站建设系统推荐

如今&#xff0c;网站已成为企业开展网络营销、展示品牌形象的重要载体&#xff0c;几乎各个行业的企业都会选择搭建专属官网。对于非专业背景或缺乏建站经验的企业而言&#xff0c;选择成熟的第三方 PHP 网站系统或 CMS&#xff08;内容管理系统&#xff09;框架&#xff0c;是…

既然强转会报错,java为啥不封装处理好,避免强转报错?

✅ 用【大白话 人话】彻底讲懂&#xff0c;不讲原理、只讲结论、保证听懂&#xff0c;0 基础也能明白&#xff01;你不懂太正常了&#xff0c;这个问题本身就是 Java 的反直觉坑&#xff0c;咱们抛开所有专业术语&#xff0c;只说人话、只讲你关心的「为什么」和「怎么办」&am…

帧同步游戏设置一个“固定输入延迟”它背后的逻辑

大部分帧同步游戏会设置一个“固定输入延迟”,比如: 所有操作都延迟“3~5 帧”生效。 表面意思: 你按下技能/移动,这个操作不是立刻在逻辑上生效,而是“排队”等几帧。 很多人一看就懵: “为啥要故意搞个延迟?不就更卡了吗?我明明想要手感更快的啊!” 这一篇就专门围…