stm32-USART通信

什么是usart?和其他通信又有什么区别?

如下图:

        USART是一种用于串行通信的设备,可以在同步和异步模式下工作。

        usart有两根数据线,一根发送线(tx)一根接收线(rx),它可以实现同时的双向通信,因此是一种全双工串行通信,但是其缺陷是支持点对点,不支持多设备

常用设备:比如usb转ttl,蓝牙模块等

异步模式

在异步模式下,USART不使用时钟信号来同步发送和接收的数据,而是依赖于双方设置的相同波特率。数据传输通过起始位、数据位、奇偶校验位(可选)和停止位来实现同步。

  • 起始位:表示数据传输的开始,通常为低电平。
  • 数据位:实际传输的数据位,可以是5到9位。
  • 奇偶校验位:用于检测传输错误(可选)。
  • 停止位:表示数据传输的结束,通常为高电平。
同步模式

在同步模式下,USART使用一个额外的时钟信号(SCLK)来同步发送和接收的数据。发送方和接收方共享这个时钟信号,确保数据传输的同步和准确性。

  • 数据位:与异步模式相同,可以是5到9位。
  • 时钟信号(SCLK):用于同步发送和接收的数据。
  • 同步数据帧:数据帧的结构与异步模式相似,但在时钟信号的同步下进行传输。

但是在一般不加时钟的多,一般用异步。

数据传输过程
  1. 初始化:在使用USART进行通信前,需要配置USART的波特率、数据位、奇偶校验位、停止位和工作模式(同步或异步)。
  2. 发送数据:将数据写入发送数据寄存器,USART会根据配置的波特率和其他参数自动发送数据。
  3. 接收数据:当USART接收到数据后,会将其存储在接收数据寄存器中,可以通过中断或轮询的方式读取数据。
双工模式介绍:
  1. 全双工(Full Duplex):USART在全双工模式下,可以同时发送和接收数据。它通常使用两个独立的数据线:TX(发送)和RX(接收)。全双工通信提高了数据传输的效率,因为发送和接收操作不会互相阻塞。

  2. 半双工(Half Duplex):虽然USART的硬件设计支持全双工,但它也可以配置为半双工模式。在半双工模式下,同一时间只能发送或接收数据,而不能同时进行。这种模式通常使用一根数据线(通常是TX/RX共用一根线),需要切换方向来发送或接收数据。

  3. 单工(Simplex):单工通信是指数据只能单向传输,即只能发送或只能接收,不能同时进行。虽然USART硬件一般不用于单工通信,但在某些特定应用场景中,可以将其配置为单工模式

接线:

在这我们一般取用异步接线,

TX与RX要交叉连接,因为对于设备2来说,设备1的发送(tx)就是它的接收(rx),对方同理。

电平标准:

        电平标准是数据1和数据0的表达方式,是传输线缆中人为规定的电压与数据的对应关系,串口常用的电平标准有如下三种:

         TTL电平:+3.3V或+5V表示1,0V表示0

         RS232电平:-3~-15V表示1,+3~+15V表示0

        RS485电平:两线压差+2~+6V表示1,-2~-6V表示0(差分信号)

串口参数时序:

波特率:串口通信的速率

起始位:标志一个数据帧的开始,固定为低电平

数据位:数据帧的有效载荷,1为高电平,0为低电平,低位先行

校验位:用于数据验证,根据数据位计算得来

停止位:用于数据帧间隔,固定为高电平

数据包:

HEX:

       

文本:

疑问解答:

看到这是不是有了一些疑问?

1.既然大部分是利用异步通信,那么他们是如何保证数据发送和接收不会错误?

2.usart和uart是一个吗?有区别吗?

3.usart和iic、rs485、can等又有什么区别?

1.        

        既然双设备利用串行双向发送,那么发送和接收肯定要约定好一个频率,主机按照一定频率发送,从机按照一定频率接收,这样子才不会出现丢包、空包。因此,在这里面,就出现了一种通信参数,叫做波特率。        

        发送端和接收端必须配置相同的波特率,即每秒钟传输的比特数。以此保证串口每发送的一位数据,其都能接收到,常见波特率:9600、115200、19200。

2.

  • USART:支持同步和异步两种模式。在同步模式下,USART使用时钟信号进行数据同步传输,这意味着发送和接收需要共享一个时钟信号。在异步模式下,USART的工作方式与UART相同,不需要共享时钟信号。
  • UART:只支持异步模式,不需要共享时钟信号,发送和接收数据通过串行数据线进行。

        主要的区别在于 USART 具有同步传输的能力,可以通过外部时钟源进行精确的时钟同步,而 UART 只能支持异步传输。USART 在物理层面的连接和电信号处理方面也稍有区别。

        因此,选择使用 UART 还是 USART 取决于具体的应用需求。如果只需要基本的异步传输功能,可以选择 UART。如果需要同步传输或更高级的功能,如多主机通信、同步通信等,可以选择 USART。


3.

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2、Redis持久化与高可用架构

一、Redis 持久化 RDB 快照(Snapshot) 基本概念:RDB(Redis DataBase)快照是将 Redis 内存中的数据在某个时间点保存到磁盘中的一种持久化方式,默认保存到 dump.rdb 的二进制文件中。通过 RDB 快照&#xff…

Pytorch课程论文设计参考

Pytorch下基于卷积神经网络的手写数字识别 论文格式 利用wps初步美化论文格式教程 wps论文格式变的的原因 格式变的根本原因是word为流式文件,就算同是word同一个版本不同电脑也会有可能变,字体变是因为没有嵌入字体然后观看的那台没有这个字体。 一、…

Excel单元格输入逐字动态提示可选输入效果制作

Excel单元格输入逐字动态提示可选输入效果制作。INDEX函数整理动态列表,再配合IF函数干净界面,“数据验证”完成点选。 (笔记模板由python脚本于2024年06月27日 22:26:14创建,本篇笔记适合喜欢用Excel处理数据的coder翻阅) 【学习的细节是欢悦…

视频监控管理平台LntonCVS智能视频监控平台系统详细介绍

安防视频监控平台LntonCVS以其卓越的灵活性和便捷的部署特性在众多同类产品中脱颖而出。它不仅支持多种主流标准协议,如国标GB28181、RTSP/Onvif、RTMP等,还兼容了海康Ehome、海大宇等厂家的私有协议和SDK接入,为用户提供了更加丰富的选择。 …

什么是有效的电子签名?PDF电子签名怎样具备法律效力?

电子签名逐渐成为商务文书和法律文件中不可或缺的一部分。《电子签名法》自2005年4月1日起施行,这一立法是中国信息化法律的重要里程碑,为电子签名应用奠定了法律基础。电子签名不仅仅是一种技术手段,更是一种法律认可的签名形式。那么究竟什…

【vue3】【vant】 移动端中国传统文化和民间传说案例

更多项目点击👆👆👆完整项目成品专栏 【vue3】【vant】 移动端中国传统文化和民间传说案例 获取源码方式项目说明:其中功能包括项目包含:项目运行环境运行截图和视频 获取源码方式 加Q群:632562109项目说…

clickhouse count和uniqCombined

count(distinct ) 和 uniqCombined 获取去重后的总数。 去重:order by distinct argMax group by 哪个好?? clickhouse数据去重函数介绍(count distinct)_clickhouse distinct-CSDN博客

重生之我要学后端0--HTTP协议和RESTful APIs

http和RESTful APIs HTTP协议RESTful APIs设计RESTful API设计实例 HTTP协议 HTTP(超文本传输协议)是用于分布式、协作式和超媒体信息系统的应用层协议。它是网页数据通讯的基础。工作原理简述如下: 客户端请求(Request&#xf…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 特殊加密算法(200分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 &#x1f…

Python和tkinter实现的字母记忆配对游戏

Python和tkinter实现的字母记忆配对游戏 因为这个小游戏用到了tkinter,先简要介绍一下它。tkinter是Python的标准GUI(图形用户界面)库,它提供了一种简单而强大的方式来创建图形界面应用程序。它提供了创建基本图形界面所需的所有工具,同时保…

生产者发送数据,kafka服务器接收数据异常的问题记录

现象: 某个客户要求审计日志用kafka的方式传输给他们,使用了第三方的librdkafka库来开发。 往客户提供的kafka服务器上的一个topic发送数据,这个topic有三个分区,客户反馈接收到的数据和发送端发送的实际数量对不上,他…

Elasticsearch环境搭建|ES单机|ES单节点模式启动|ES集群搭建|ES集群环境搭建

文章目录 版本选择单机ES安装与配置创建非root用户导入安装包安装包解压配置JDK环境变量配置single-node配置JVM参数后台启动|启动日志查看启动成功,访问终端访问浏览器访问 Kibana安装修改配置后台启动|启动日志查看浏览器访问 ES三节点集群搭建停止es服务域名配置…

平板WPS转换的PDF文件保存位置解析

在日常工作和生活中,我们经常需要将文档转换成PDF格式进行分享,以确保接收者能够无障碍地查看文件内容,不受软件版本或操作系统的限制。WPS作为一款功能强大的办公软件,也提供了文档转换为PDF的功能。然而,有时在转换并…

HarmonyOS--数据持久化--关系型数据库

文档中心 关系型数据库 场景介绍 关系型数据库基于SQLite组件,适用于存储包含复杂关系数据的场景,比如一个班级的学生信息,需要包括姓名、学号、各科成绩等,又或者公司的雇员信息,需要包括姓名、工号、职位等&#…

hnust 1817 算法10-10,10-11:堆排序

hnust 1817 算法10-10,10-11:堆排序 题目描述 堆排序是一种利用堆结构进行排序的方法,它只需要一个记录大小的辅助空间,每个待排序的记录仅需要占用一个存储空间。 首先建立小根堆或大根堆,然后通过利用堆的性质即堆顶的元素是最…

Mac14.1.2 M1芯片免费读写ntfs硬盘-亲测有效,免费!!!

1. 安装homebrew 打开终端,使用以下命令 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" 根据提示逐步完成即可,镜像选择我这里都是保持1的选项。 2. 重启终端 安装完成homebrew后,需…

Vite: 关于Rollup打包

概述 Rollup 是一款基于 ES Module 模块规范实现的 JavaScript 打包工具,在前端社区中赫赫有名,同时也在 Vite 的架构体系中发挥着重要作用不仅是 Vite 生产环境下的打包工具,其插件机制也被 Vite 所兼容,可以说是 Vite 的构建基…

单点登录(cookie+Redis)

1、什么是单点登录? Single Sign On简称SSo,只需要登录一次就可以在整个系统实现访问。 因为session的特性,是没有办法在多个服务系统之间实现数据的共享。 解决一个分布式session的问题。目前我们使用redis来实现分布式session。 1.1、新问题…

【数据结构】(C语言):队列

队列: 线性的集合。先进先出(FIFO,first in first out)。两个指针:头指针(指向第一个进入且第一个出去的元素),尾指针(指向最后一个进入且最后一个出去的元素&#xff0…

Redis优化之持久化

目录 1.Redis高可用 2.Redis持久化 2.1 RDB持久化 2.1.1 触发条件 2.1.2 执行流程 2.1.3 启动时加载 2.2 AOF持久化 2.2.1 开启AOF 2.2.2 执行流程 2.2.3 文件重写触发方式 2.2.4 文件重写的流程 2.2.5 启动时加载 2.3 RDB和AOF的优缺点 3.Redis性能管理 3.1 查看…