STM32——UART

news/2025/10/13 23:25:49/文章来源:https://www.cnblogs.com/wb-code/p/19139655

UART通信协议(串口通信)
1、两根通信线(发送和接收),TX与RX要交叉连接。只需进行单向通讯时可只连接一根通信线。
2、仅支持点对点的通信,不像I2C、SPI支持一对多通信。
3、进行通信的两设备电平标准必须一致,当电平标准不一致时应该加上电平转换芯片。
串口参数:
波特率:串口通信的速率
起始位:标志一个数据帧的开始,固定为低电平
数据位:数据帧的有效载荷,1为高电平,0为低电平,低位先行
校验位:用于数据验证,根据数据位计算得来
停止位:用于数据帧间隔,固定为高电平

  • 可配置数据位长度(8/9)、停止位长度(0.5/1/1.5/2)
  • 可选校验位(无校验/奇校验/偶校验)
    图片
    图片

为什么UART通信要采用16倍过采样技术?
主要目的是提高数据传输的可靠性和抗干扰能力。通过更高的采样率,接收器能够更准确地检测数据位,避免因边沿失真或时钟不同步而导致的错误。
工作原理:
在UART通信中,数据传输以一个起始位“0”开始,接收器(RX)通过检测从逻辑“1”到“0”的跳变来识别起始位。16倍采样的具体过程如下:

  1. 接收器在检测到低电平后,连续采样8个时钟周期
  2. 如果这8个周期均为低电平,则确认起始位有效。
  3. 确认起始位后,接收器每隔16个时钟周期采样一次,确保采样点位于每个数据位的中间位置。
  4. 通过对数据位的7、8、9三个采样点进行“三取二”原则判断,最终确定数据位的值。
    关于接收器RX的设计最重要的一点就是如何提高采样的准确率,最好是采样点处于被采样数据位的中心点。所以就要采用一种比波特率高n倍的采样方式进行采样,来避免边沿失真和时钟不同步引起的采样不准确。
    此处用比波特率高16倍的过采样技术:
    1781698-20231228164452560-525460978
    按照该图进行分析:
    1.t1-t2:当t1时刻检测到低电平,就从这开始进行采样检测,当进行8个时钟周期的采样到t2时,采样结果都是低电平那就说明起始位有效,否则判定为噪声。
    2.t2-t3:当起始位有效之后接收器每隔16个周期进行一次采样,这就是会确保在后续对data位的每次采样都位于每个data位的中心位置。
    从此循环往复下去知道data位的采样结束,并且检测坚持到停止位。

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

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

相关文章

WebApi 交叉观察者- IntersectionObserver复盘

交叉观察者- IntersectionObserver复盘 一、 Intersection Observer是什么? Intersection Observer API 提供了一种异步观察目标元素与祖先元素或视口交叉状态的方法。通俗地说,就是可以高效地监测一个元素是否进入或…

[KaibaMath]1009 关于||a|-|b||≤|a+b|的证明

[KaibaMath]1009 关于||a|-|b||≤|a+b|的证明绝对值的三角形不等式为||a|-|b||≤|ab|≤|a|+|b|. 本文给出前半段的证明,即证明||a|-|b||≤|ab|.

css: Bootstrap5 Accordions

<!doctype html> <html> <head> <meta charset="utf-8"> <title>Bootstrap5 Accordions</title><link rel="stylesheet" href="https://cdn.jsdeliv…

AMPopTip - 优雅的iOS动画提示框库

AMPopTip是一个功能丰富的iOS动画提示框库,支持多种弹出方向和箭头样式,可高度自定义颜色、边框和字体,适用于用户引导和界面提示等场景,让应用交互更加生动有趣。AMPopTip AMPopTip 是一个优雅的动画弹出提示框,…

2026年深度对比值得推荐的10个在线客服系统

1. 唯一客服—— 可独立部署的高性能客服系统源码唯一客服系统主要功能是,为网站或APP等提供在线即时聊天功能,可以方便客户与我们的客服人员进行实时沟通的。主要用户群体是中小互联网科技公司,有自己的开发产品,…

文件名中有空格比较烦人

我们已经造好了两个文件:" t.sh"和"t m p" $ " t.sh" "t m p" OK $ " t.sh t m p" # 首先找不到t.sh,其次就算找到,接收到的也是3个参数t, m, p不是一个"t…

十月总结

10.11 广二 T1:计数、容斥原理 有一个计数的做法,大致做法是在最后面的开头统计,然后要求后面不能出现,这样贡献就是唯一的,需要fail树上跑下来dfn这样 容斥原理就比较直接,加上序列中有一个开头的,减去有两个开…

20251013 之所思 - 人生如梦

20251013 之所思1. 前天老板约了一个会议,讨论log的录制,防止问题发生时无法录到现场的数据而反复要求实车同事去复现问题采集数据。当我发言时被另一个同事打断并说表达的不正确,当时很气愤,一是自己刚刚开始发言…

20232421 2024-2025-1 《网络与系统攻防技术》实验一实验报告

20232421 2024-2025-1 《网络与系统攻防技术》实验一实验报告 1.实验目标 本次实践的对象是一个名为pwn1的linux可执行文件。 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串。 该程序…

20232317 2025-2026-1《网络与系统攻防技术》实验一实验报告

1.实验内容 1.1手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数。 1.2利用foo函数的Bof漏洞,构造一个攻击输入字符串,覆盖返回地址,触发getShell函数。 1.3注入一个自己制作的shellcode并运行这段sh…

实用指南:【每日一面】React Hooks闭包陷阱

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Java 面试 - krt

1、ArrayList和LinkedList的区别 2、@Autowired和@Resource的主要区别1、ArrayList和LinkedList的区别 ArrayList:底层数据结构:ArrayList基于数组实现,元素在内存中连续存储,支持随机访问(时间复杂度为o(1));…

软工大三开学总结

在本学期我的目标是主要是在完成本学期的课程目标拿到奖学金的同时跟进考研。 在考虑过很多之后我个人还是觉得考研是我的选择,因为我从心底里觉得,我好不容易 上到这儿了一说是吧,怎么能就止步于此呢,再向上走走呢…

SpringBoot-day2(基于SpringBoot实现SSMP整合) - a

SpringBoot JC-3.基于SpringBoot实现SSMP整合 ​ 重头戏来了,SpringBoot之所以好用,就是它能方便快捷的整合其他技术,这一部分咱们就来聊聊一些技术的整合方式,通过这一章的学习,大家能够感受到SpringBoot到底有多…

给一个字符串数组,输出不同的部分

豆包给出代码/// <summary> /// 字符串差异提取工具类(仅使用原字符串字符) /// </summary> public static class StringDiffExtractor {/// <summary>/// 从字符串列表中提取差异部分,差异部分仅…

Java按顺序提取Word内容(文本+数学公式) - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

连接 USB 设备

转载自:https://learn.microsoft.com/zh-cn/windows/wsl/connect-usb本指南将演练使用 USB/IP 开源项目 usbipd-win 将 USB 设备连接到 WSL 2 上运行的 Linux 分发版所需的步骤。 在 Windows 计算机上配置 USB/IP 项目…

实用指南:嵌入式学习笔记3.基于寄存器方式控制GPIO

实用指南:嵌入式学习笔记3.基于寄存器方式控制GPIO2025-10-13 22:50 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; disp…

# 20232429 2025-2026-1 《网络与系统攻防技术》实验一实验报告

1.实验内容手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数。 利用foo函数的Bof漏洞,构造一个攻击输入字符串,覆盖返回地址,触发getShell函数。 注入一个自己制作的shellcode并运行这段shellcode。 …

muduo网络库事件驱动模型的实现与架构 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …