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

STM32之USART

概述

串口通信,通用异步收发传输器(Universal Asynchronous Receiver/Transmitter ),简称UART;而USART(Universal Synchronous/Asynchronous Receiver/Transmitter)通用同步收发传输器。

USART主要用于产生相关接口的协议信号,如RS-232,RS485等;

一、RS-232

RS-232:它是由美国电子工业协会(Electonic Industry Association)制定的串行通信的物理接口标准,它被广泛应用于计算机串行接口外设的连接;它规定了连接电缆和机械、电气特性、信号功能及发送过程。

在老式的台式计算机上会有一两个采用RS-232标准的接口,俗称为COM口,COM口一般采用DB-9(9针)的形式。

RS-232的物理接口

其中接线口以针式引出信号线的称为公头,以孔式引出信号线的称为母头。

各个引脚的定义:

对于这9个引脚,实际上并没有用到那么多,一般情况只需要RXD、TXD、GND三根线即可。

野火stm32f407开发板上UART使用的电平标志是TTL电平标志,图1是TTL与RS-232的差别:

                         图1

RS-232的电平标准能有有效减少信号的衰减,相比于UART,能更远的传输数据。因此,PC的com端口与stm32开发板连接时,需要使用MAX3232芯片实现RS-232电平与TTL电平之间的转换才能进行相互通信。

二、异步串口通信协议

在串口通信中,规定了异步串口通信协议:异步串行通信的数据帧由起始位、数据位、校验位、停止位4个部分组成。


起始位:平时收发引脚的电平都为高电平,串口要发送数据时,发送的数据帧以逻辑0为传输数据的开始,
数据位:数据长度为8/9位数据位,采用由最低有效位到最高有效位一位一位地传输。
校验位:用于检验数据是否有效,提高数据传输的准确率,该位为可选项,若校验位为“0”,表示不对数据进行校验;若校验位为“1”,表示对数据进行奇校验或偶校验。
停止位:一帧数据传送完毕的标志,一般固定为高电平,位数1至2位数据位。

三、UART内部结构(了解即可)

SW_RX:智能卡通信接口

IrDA:红外线数据协会

这些引脚暂时不用,发送数据寄存器(TDR)与接收数据寄存器(RDR)共用同一个地址;

发送移位寄存器的作用:把数据一位一位地发送出去。

比如某一时刻给TDR写入0x55,那么在寄存器中就是以0101 0101存储,系统就会检查当前发送移位寄存器是否有数据在移位,如果没有,就会把0x55全部发送到发送移位寄存器中,准备发送,在此工程中,会置一个标志位TXE(TX Empty:发送寄存器为空)。如果TXE置1,就可以继续在TDR写下一个数据。

发送移位寄存器就会在下面的发生器控制的驱动下,向右一位一位地把数据输出到TX引脚,也就是低位先行。

有了TDR和发送数据移位寄存器的双重缓存下,能保证发送数据期间,数据桢之间没有空闲。

而在接收端,在接收器控制的驱动下,接收移位寄存器一位一位地读取电平,向放在最高位,然后往右移,当移位寄存器里的数据全部移位完成,就会全部转移到接收数据寄存器(RXD)中,在数据转移的工程中,系统也会置一个标志位RXNE(接收数据寄存器不为空),当RXNE置1时,接收移位寄存器就可以直接移位接收下一位数据。

硬件数据流控制:如果发送设备发送数据太快,接收设备来不及处理,就会出现数据丢弃和覆盖的现象。nRTS: Request To Send,输出引脚"n"表示低电平有效;nCTS:Clear To Send清除发送,输入引脚。在实际工程中,接受设备的nRTS与发送设备的nCTS连接,当发送设备中的nCTS引脚接收到接收设备nRTS的低电平信号时,发送设备的TX发送数据。

三、串口通信的缺点

虽然串口通信只需要两根收发线和约定好通讯协议即可,但它也同样具有局限性:

1、传输速度慢

2、不支持一对多通信

3、不能远距离传输数据

相关文章:

STM32之USART

概述 串口通信,通用异步收发传输器(Universal Asynchronous Receiver/Transmitter ),简称UART;而USART(Universal Synchronous/Asynchronous Receiver/Transmitter)通用同步收发传输器。 USAR…...

unity 点击事件

目录 点击按钮,显示图片功能教程 第1步添加ui button,添加ui RawImage 第2步 添加脚本: 第3步,把脚本拖拽到button,点击button,设置脚本的变量, GameObject添加 Component组件 点击按钮&am…...

idea自带的HttpClient使用

1. 全局变量配置 {"local":{"baseUrl": "http://localhost:9001/"},"test": {"baseUrl": "http://localhost:9002/"} }2. 登录并将结果设置到全局变量 PostMapping("/login")public JSONObject login(H…...

vue3-应用规模化-路由和状态

客户端 vs. 服务端路由 服务端路由指的是服务器根据用户访问的 URL 路径返回不同的响应结果。当我们在一个传统的服务端渲染的 web 应用中点击一个链接时,浏览器会从服务端获得全新的 HTML,然后重新加载整个页面。 然而,在单页面应用中&…...

网络安全检查表

《网络攻击检查表》 1.应用安全漏洞 2.弱口令,默认口令 3.服务器互联网暴露 4.操作系统,中间件安全漏洞 5.研发服务器,邮件服务器等安全检查...

SSM框架,Maven的学习(下)

依赖传递和依赖冲突 依赖传递指的是当一个模块或库 A 依赖于另一个模块或库 B,而 B 又依赖于模块或库 C,那么 A 会间接依赖于 C。这种依赖传递结构可以形成一个依赖树。当我们引入一个库或框架时,构建工具(如 Maven、Gradle&…...

Vivado开发FPGA使用流程、教程 verilog(建立工程、编译文件到最终烧录的全流程)

目录 一、概述 二、工程创建 三、添加设计文件并编译 四、线上仿真 五、布局布线 六、生成比特流文件 七、烧录 一、概述 vivado开发FPGA流程分为创建工程、添加设计文件、编译、线上仿真、布局布线(添加约束文件)、生成比特流文件、烧录等步骤&a…...

C语言之动态内存管理

目录 1. 为什么要有动态内存分配2. malloc和freemallocfree 3. calloc和realloccallocrealloc 4. 常见的动态内存的错误对NULL直接的解引用操作对动态开辟空间的越界访问对非动态开辟内存使用free释放使用free释放一块动态开辟内存的一部分对同一块动态内存多次释放动态开辟内存…...

【AIGC风格prompt深度指南】掌握绘画风格关键词,实现艺术模仿的革新实践

[小提琴家]ASCII风格,点,爆炸,光,射线,计算机代码 由冰和水制成的和平标志]非常详细,寒冷,冰冻,大气,照片逼真,流动,16K 胡迪尼模拟火和水&#x…...

Qt安装配置教程windows版(包括:Qt5.8.0版本,Qt5.12,Qt5.14版本下载安装教程)(亲测可行)

目录 Qt5.8.0版本安装教程Qt5.8.0版本下载安装 Qt5.12.2版本安装教程下载安装 Qt 5.14.2安装教程下载安装和创建项目 参考视频 QT为嵌入式系统提供了大量的库和可重用组件。 WPS Office,咪咕音乐,Linux桌面环境等都是QT开发的。 Qt5.8.0版本安装教程 Q…...

SpringCloud-Ribbon实现负载均衡

在微服务架构中,负载均衡是一项关键的技术,它可以确保各个服务节点间的负载分布均匀,提高整个系统的稳定性和性能。Spring Cloud 中的 Ribbon 就是一种负载均衡的解决方案,本文将深入探讨 Ribbon 的原理和在微服务中的应用。 一、…...

Qt网络编程-TCP与UDP

网络基础 TCP与UDP基础 关于TCP与UDP的基础这里就不过多介绍了,具体可以查看对应百度百科介绍: TCP(传输控制协议)_百度百科 (baidu.com) UDP_百度百科 (baidu.com) 需要知道这两者的区别: 可靠性: TC…...

Promise 常见题目

微信搜索“好朋友乐平”关注公众号。 1. Promise 对象池 请你编写一个异步函数 promisePool ,它接收一个异步函数数组 functions 和 池限制 n。它应该返回一个 promise 对象,当所有输入函数都执行完毕后,promise 对象就执行完毕。 池限制 定…...

五大架构风格之五:仓库架构风格

仓库架构风格: 仓库风格架构(Repository Architecture Style)是一种软件架构模式,它主要用于处理系统中的持久化数据存储和检索。在这一风格中,仓库(Repository)作为应用程序与数据库或其他持久…...

探索设计模式的魅力:外观模式简化术-隐藏复杂性,提供简洁接口的设计秘密

设计模式专栏:http://t.csdnimg.cn/U54zu 目录 引言:探索简化之路 一、起源和演变 二、场景案例分析 2.1 不用模式实现:用一坨坨代码实现 2.2 问题 2.3 外观模式重构代码 定义 界面 接口 利用外观模式解决问题步骤 外观模式结构和说明 重构…...

java之Maven

1. maven Maven是管理和构建java项目的工具 项目依赖资源(jar包)的管理,避免版本冲突统一项目结构项目构建,标准跨平台(Linux,window,MacOS)的自动化项目管理 2.maven依赖仓库 2.maven安装 maven安装视频教程 3. IDEA集成Maven 4. maven的依赖范围 5. maven生命…...

Elasticsearch(四)

是这样的前面的几篇笔记,感觉对我没有形成知识体系,感觉乱糟糟的,只是大概的了解了一些基础知识,仅此而已,而且对于这技术栈的学习也是为了在后面的java开发使用,但是这里的API学的感觉有点乱!然…...

蓝桥杯-X图形

问题描述 给定一个字母矩阵。一个 X 图形由中心点和由中心点向四个 45度斜线方向引出的直线段组成,四条线段的长度相同,而且四条线段上的字母和中心点的字母相同。 一个 X 图形可以使用三个整数 r,c,L 来描述,其中 r,c 表示中心点位于第 r 行…...

2. Maven 继承与聚合

目录 2. 2.1 继承 2.2继承关系 2.2.1 思路分析 2.2.2 实现 2.1.2 版本锁定 2.1.2.1 场景 2.1.2.2 介绍 2.1.2.3 实现 2.1.2.4 属性配置 2.2 聚合 2.2.1 介绍 2.2.2 实现 2.3 继承与聚合对比 maven1:分模块设计开发 2. 在项目分模块开发之后啊&#x…...

如何把手机平板变为电脑的屏幕

文章目录 安装软件运行效果结尾 本文首发地址 https://h89.cn/archives/181.html 最新更新地址 https://gitee.com/chenjim/chenjimblog 闲置的手机平板、触屏音箱等,均可作为电脑的扩展屏,为电脑增加一块显示屏,本文介绍如何使用免费的软件s…...

Windows 10/11系统自建修复命令

PS C:\Users> DISM /Online /Cleanup-Image /RestoreHealth PS C:\Users> sfc /scannow...

通过Taotoken CLI工具一键配置团队开发环境与统一API调用

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过Taotoken CLI工具一键配置团队开发环境与统一API调用 在团队协作开发中,统一大模型API的接入配置是一个常见需求。…...

KiCad插件宝藏:用Interactive HTML BOM,让你的PCB协作效率翻倍

KiCad插件宝藏:用Interactive HTML BOM,让你的PCB协作效率翻倍 在硬件开发领域,BOM(物料清单)就像电路板的"身份证",但传统Excel表格的静态呈现方式,常常让团队成员在评审、采购、焊接…...

Pearcleaner终极指南:5步实现Mac应用彻底卸载,释放宝贵存储空间

Pearcleaner终极指南:5步实现Mac应用彻底卸载,释放宝贵存储空间 【免费下载链接】Pearcleaner A free, source-available and fair-code licensed mac app cleaner 项目地址: https://gitcode.com/gh_mirrors/pe/Pearcleaner 还在为Mac存储空间不…...

从STM32转战华大HC32F4A0:手把手教你搞定TIM6的PWM输入捕获(附中断配置避坑点)

从STM32到HC32F4A0的PWM输入捕获实战:TIM6配置与中断避坑指南 对于习惯了STM32生态的嵌入式开发者来说,初次接触华大半导体的HC32F4A0系列MCU时,往往会遇到一些意料之外的挑战。PWM输入捕获作为电机控制、频率测量等应用中的核心功能&#xf…...

手把手图解:用‘阻挫’和‘复本’理解自旋玻璃、自旋冰与量子自旋液体

手把手图解:用‘阻挫’和‘复本’理解自旋玻璃、自旋冰与量子自旋液体 凝聚态物理中那些看似晦涩的概念,往往只需要一个恰到好处的比喻就能豁然开朗。想象你正在参加一场磁铁小人的派对,它们的箭头方向就像固执的舞伴,既想跟随音乐…...

AI记忆系统健康管理:行为数据驱动的OpenClaw记忆污染解决方案

1. 项目概述:为AI记忆系统装上“听诊器”如果你正在用OpenClaw,或者任何类似的AI智能体开发框架,那你肯定对它的记忆系统又爱又恨。爱的是,它能记住你项目里的关键代码片段、常用指令,下次对话时能直接调出来用&#x…...

基于Laravel的BeikeShop开源电商平台:从架构解析到生产部署实战

1. 项目概述:为什么选择BeikeShop作为你的开源电商起点?如果你正在寻找一个能让你完全掌控代码和数据,同时又不想从零开始造轮子的电商解决方案,那么BeikeShop绝对值得你花时间深入了解。作为一个基于Laravel 10构建的、100%开源的…...

强化学习在推测执行漏洞挖掘中的应用与实践

1. 推测执行漏洞与安全挑战现代处理器中的推测执行技术通过预测分支路径提前执行指令,大幅提升了指令级并行性。当处理器遇到条件分支时,它会根据历史记录预测分支走向,并提前执行预测路径上的指令。如果预测正确,可以节省约10-15…...

系统化调试方法论:从STOP到DETECT,告别救火式排查

1. 项目概述:一套源自实战的系统化调试方法论如果你是一名开发者,或者正在和AI Agent打交道,大概率都经历过这种场景:线上服务突然报错,你心急火燎地登录服务器,看着日志里一堆堆的异常信息,脑子…...