当前位置: 首页 > news >正文

彻底搞懂UART串口:为什么一次只接收8位?校验位到底怎么占?

很多嵌入式新手永远搞不懂串口,经常遇到一个经典bug:

串口助手明明设置8位数据,一开奇偶校验,STM32最高位直接出错、乱码。

大部分人一辈子都不知道原因。

今天我用最简单、最直白、没有任何废话的人话,彻底讲透UART串口底层原理、帧结构、校验位坑、以及STM32特殊规则。

一、串口到底是怎么传数据的?

UART串口是串行通信

直白说:数据线只有一根,数据只能一位一位排队发送,不是一次性发送8位。

1、串口空闲状态

平时不发数据时,TX、RX电平永远保持高电平(逻辑1)

2、起始位(Start Bit)

要发数据时,先把电平拉低:拉低1bit时间 = 起始位

作用:告诉接收方:我要开始发数据了,请准备接收。

3、数据位(Data Bit)

随后按照波特率,一位一位发送二进制数据。

默认低位在前、高位在后

4、校验位(Parity Bit)——可选

在数据位后面,额外增加1位,用来简单校验数据是否出错。

5、停止位(Stop Bit)

数据发送完成,拉高电平,保持1bit或2bit时间,表示一帧结束。


二、为什么串口一次接收8位?

很多人问:为什么串口默认一次收8位?不能收5位、12位吗?

1、真实传输过程

串口线上永远是:1bit、1bit慢慢挪

不是一次性发8位。

2、移位寄存器

串口外设内部有一个硬件:移位寄存器

它的工作逻辑超级简单:

  • 检测到起始位 → 开始逐位采集电平

  • 收满你设定的数据位数

  • 把一串bit拼成1个完整数据

  • 送入DR数据寄存器,通知CPU读取

3、通俗总结

不是串口只能收8位。

是你设置了8位,硬件帮你攒够8位,打包成1字节再交给你。

你设置7位,它就攒7位;设置9位,就攒9位。


三、串口助手的8位 和 STM32的8位

这是90%嵌入式工程师踩过的坑,也是你之前最高位出错的根本原因。

1、串口助手定义

串口助手的配置:

  • 数据位:8位 = 纯有效数据

  • 校验位:额外多出1位(不算在8位内)

  • 停止位:额外多出1位

举例:8E1(8位数据、偶校验、1停止位)

物理线路实际传输:1起始+8数据+1校验+1停止 = 共11位

2、STM32定义

STM32的 USART 有一个特殊规定:

WordLength(字长)= 包含校验位的总长度

这就是所有bug的根源!

3、错误示范(你之前踩的坑)

开启奇偶校验,STM32仍然设置8位字长:

硬件解析规则:

8位总长度 = 7位数据 + 1位校验位

结果:

  • 你的最高位被硬件强行当成校验位

  • 读到的数据永远最高位错乱

  • 高位数据大量出错

4、正确做法

只要开启奇偶校验,STM32必须设置为9位字长!

四、完整串口帧流程

举例子:发送一个字节 0x55(二进制 01010101),配置8N1

电平变化顺序:

空闲高电平 → 起始位(拉低) → 0 1 0 1 0 1 0 1 → 停止位(拉高)

  1. 硬件检测起始位,开始同步

  2. 逐位采集8个bit

  3. 移位寄存器拼成1字节

  4. 存入DR寄存器,置位RXNE标志

  5. 程序员读取DR,清除标志


五、常见疑问

1、为什么默认都是8位?

因为8位 = 1字节,是计算机最小通用单位,所有协议、硬件全部适配。

2、停止位算不算数据位?

不算。停止位纯粹用于分隔帧,不保存任何有效数据。

3、校验位作用是什么?

简单检错。防止电磁干扰导致某一位电平出错。

4、Modbus为什么默认无校验?

因为Modbus自带CRC校验,不需要硬件奇偶校验,多余且浪费时间。

http://www.jsqmd.com/news/861452/

相关文章:

  • 一文读懂Kafka中的“消费”(对标MySQL数据库)
  • 2026年Q2办公净水器选型指南:成都工厂净水器/成都直饮水净水设备/成都直饮水品牌/成都直饮水工程/成都直饮水机/选择指南 - 优质品牌商家
  • 网络协议01-Http-工作原理补充
  • CSS逻辑属性完全指南:构建国际化布局
  • 杭州防水补漏技术深度分享:杭州屋面维修/杭州屋面翻新/杭州屋面防水/杭州市政道路设施维修/杭州建筑修缮/杭州建筑结构补强加固/选择指南 - 优质品牌商家
  • 海宁沙发翻新换皮靠谱商家优选推荐|匠阁沙发翻新、御匠沙发翻新、锦修沙发翻新三大品牌、全品类沙发翻新一站式服务 - 卓信营销
  • AI知识库两大绝招:RAG与LLM Wiki,秒变信息检索大师!
  • 知网研学CSL 样式提取
  • 初识java(八):数组的定义与使用
  • 宁德沙发翻新换皮靠谱商家优选推荐|匠阁沙发翻新、御匠沙发翻新、锦修沙发翻新三大品牌、全品类沙发翻新一站式服务 - 卓信营销
  • 2026年哪款金价查询APP方便对比不同品牌金价
  • 2026年当前,东海天然水晶品牌深度解析与专业推荐 - 2026年企业推荐榜
  • Claude Code 10 个必学斜杠命令详解
  • 阜阳沙发翻新换皮靠谱商家优选推荐|匠阁沙发翻新、御匠沙发翻新、锦修沙发翻新三大品牌、全品类沙发翻新一站式服务 - 卓信营销
  • Amphenol ICC ND9ACK250A线束组件应用分析与兼容替代思路
  • 企业甄选 eHR 核心指南:认准 AI 实力与全域数据互通两大核心标准
  • LangChain技术栈深度解析:从开源框架到商业化平台,构建你的智能应用帝国!
  • 上饶沙发翻新换皮靠谱商家优选推荐|匠阁沙发翻新、御匠沙发翻新、锦修沙发翻新三大品牌、全品类沙发翻新一站式服务 - 卓信营销
  • 2026年5月采购指南:四川大跨距桥架高性价比工厂推荐 - 2026年企业推荐榜
  • 2026年十大瓷砖胶品牌口碑榜:瓷砖胶口碑排行/瓷砖胶品牌价格/大板专用瓷砖胶/岩板专用瓷砖胶/德高和亿固瓷砖胶/选择指南 - 优质品牌商家
  • 认证系统执行流程
  • 2026成都寒假雅思培训机构怎么选:成都出国留学考试培训/成都口语托福培训/成都国内雅思培训/成都培训雅思班/成都封闭班雅思培训/选择指南 - 优质品牌商家
  • Vue.js 浏览器兼容性完全指南:从 Vue 2 到 Vue 3 的全面解决方案
  • 影刀RPA 企业级专题篇:Kubernetes 自动化调度与分布式执行集群实践
  • 2026年5月新发布:南昌保证合同纠纷律师咨询,王景律师的专业服务解析 - 2026年企业推荐榜
  • 邯郸沙发翻新换皮靠谱商家优选推荐|匠阁沙发翻新、御匠沙发翻新、锦修沙发翻新三大品牌、全品类沙发翻新一站式服务 - 卓信营销
  • 后端转AI应用:3-6个月实战路线,高薪转型秘籍!不啃算法,复用优势速成!
  • 2026年Q2网银Ukey安全选型:网银盾集中、Ukey安全、Ukey集中安全、U盾安全、U盾管理、U盾集中管理选择指南 - 优质品牌商家
  • 企业级Agent开发保姆级教程:从入门到交付,看这一篇就够了
  • AI 大模型对比:Gemini vs ChatGPT vs Claude Code