一、简介

USART(Universal Synchronous/Asynchronous Receiver/Transmitter,通用同步/异步收发器)是一种常见的串行通信协议,广泛应用于微控制器、传感器、模块和其他电子设备之间的数据传输。本节课主要学习USART的基本结构以及其原理。

二、通信接口

通信的目的:将一个设备的数据传送到另一个设备,扩展硬件系统

在STM32芯片当中,有一些功能是没有的,比如蓝牙、WIFI、陀螺仪等,这些外挂的模块是存有数据的,但是需要将数据传输到STM32里面,这就需要通过USART串口通信进行数据传输给芯片

通信协议:制定通信的规则,通信双方按照协议规则进行数据收发,下图为不同通信模式的通信协议。

1、工作方式

半双工:发送的时候不能接收,接收的时候不能发送

全双工:发送和接收能够同步进行 

2、时钟

为了让数据传输的时候要能够准确的采集数据,就引入了时钟,时钟分为同步、异步两种

I2C和SPI因为有单独的时钟线,所以能够实现同步

USART、CAN、USB没有时钟线,所以只能通过约定采样频率和引入帧头帧尾进行采样位置对齐

3、电平特性

单端:通信的高低电平是相对于GND的,所以双方必须接GND引脚,否则无法通信

差分:靠两个差分引脚电压差实现信号传输,可以不需要接GND,但是一些USB协议里需要,不接GND是不行的。

4、引脚说明: 

USART        TX:发送        RX:接收

I2C        SCl:时钟线        SDA:数据线 

SPI        SCLK:时钟        MOSI:主出从入        MISO:出入从出        CS:片选

片选:因为片选的存在所以SPI能够实现多设备的接入

三、串口通信的设备

       串口是一种广泛应用的通信接口,具有成本低、使用简便和线路简单的特点,能够实现两个设备间的双向通信。一般来说串口是点对点的设备,两个设备之间的通信。

        通过串口,单片机可以与其他单片机、计算机以及各类功能模块进行通信。这不仅大幅拓展了单片机的应用范围,还显著提升了单片机系统的硬件能力。

图中的的设备都是可以通过USART实现设备之间的通信

1、USB转串口模块,采用的是CH340芯片,它可以实现将串口协议转USB协议

2、陀螺仪传感器,可以测量角速度、加速度等参数,左侧引脚是串口,右侧是I2C

3、蓝牙模块,下面接口是串口连接,这样就可以实现单片机与手机的互联硬件电路

在简单双向串口通信中,需要连接两根通信线:发送端(TX)和接收端(RX),TX和RX需要交叉连接

若仅需单向数据传输,则只需连接一根通信线即可

当通信双方电平标准不一致时,需添加电平转换芯片

假设设备1是STM32,设备2是蓝牙模块,蓝牙模块是没有电源的,那么VCC就可以连接STM32的VCC实现子模块的供电(要满足供电要求,不同电平需要加电平转换模块)

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

TTL电平:+3.3V+5V表示10V表示0

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

RS485电平:两线压差+2~+6V表示1-2~-6V表示0(差分信号)(通信距离可达上千米)

四、串口参数以及时序

波特率:决定串口通信传输速率的参数,常见的波特率包括9600、19200、115200等。波特率越高,相同时间内传输的数据越快。波特率设置需保证通信双方一致,否则会导致数据解析错误。

起始位:数据帧开始的标识信号,始终保持低电平状态,其作用是通知接收方准备接收数据,并作为同步时钟的参考点。

数据位:承载实际数据的有效位,高位表示1(高电平),低位表示0(低电平),按从低到高顺序传输

校验位:基于数据位计算得出的校验值,用于检测传输准确性

校验位用于检测数据传输中的错误,常见校验方式包括:

        偶校验:数据位和校验位中 1 的个数为偶数。

        奇校验:数据位和校验位中 1 的个数为奇数。

        无校验:不添加校验位。

停止位:标记数据帧结束的间隔信号,始终保持高电平

无校验位:八位载荷 

 有校验位:八位载荷 ,一位校验

在末尾插入一个校验位

偶:传输的是0000 1111就插入一个0,如果传输的是0000 1110就插入一个1,使1满足偶数个

奇:传输的是0000 1111就插入一个1,如果传输的是0000 1110就插入一个0,使1满足奇数个

但是不一定是百分百正确判断,它的存在只是减少数据传输的不正确。 假设有两个数据出错了,但是没有改变奇偶特性就不会检出错误。

五、总结

        USART是一种通用串行通信协议,用于微控制器与外部设备的数据传输。其支持同步/异步通信,具有全双工和半双工两种工作方式。通信协议包含起始位(低电平)、数据位(高低电平表示1/0)、可选校验位(奇偶校验)和停止位(高电平)。电平标准包括TTL、RS232和RS485三种,波特率需双方一致以确保通信正确。USART通过TX(发送)和RX(接收)引脚实现设备间连接,适用于STM32与传感器、蓝牙模块等外设的数据交互,具有成本低、接线简单的特点。不同电平设备通信时需使用转换芯片。

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

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

相关文章

A316-V71-Game-V1:虚拟7.1游戏声卡评估板技术解析

引言 随着游戏产业的蓬勃发展,沉浸式音频体验成为提升游戏体验的关键因素。本文将介绍一款专为游戏音频设计的评估板——A316-V71-Game-V1,这是一款基于XMOS XU316技术的虚拟7.1游戏声卡评估平台。产品概述 A316-V71-Game-V1是一款专为虚拟7.1游戏声卡设…

小白成长之路-部署Zabbix7

文章目录一、概述二、案例三、第二台虚拟机监控总结一、概述 二、案例 实验开始前: systemctl disable --now firewalld setenforce 0 Rocky9.4部署Zabbix7 一、配置安装源 rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rocky/9/x86_64/zabbix-release-7.0-5.el…

飞书非正常显示与权限问题解决方案

可能是本地缓存导致的,让员工参考以下方法操作下:看不懂下面的建议删除飞书再重新安装;博主就遇到过版本低的原因,试过下面方面都不行。结果就是删除重新安装,博主是mac电脑。Windows 系统关闭飞书。如果不能关闭&…

第十八节:第八部分:java高级:动态代理设计模式介绍、准备工作、代码实现

程序为什么需要代理以及代理长什么样如何为java对象创建一个代理对象代码: BigStar类 package com.itheima.day11_Proxy;public class BigStar implements Star {private String name;public BigStar(String name) {this.name name;}public String sing(String nam…

Grok网站的后端语言是php和Python2.7

老马的Grok模型 https://grok.com/#subscribephp语法这里还出现了两个bug后端语言能看到是php和python2.7要说卷还是得看中国的程序员啊,天天就是新技术,赶不上别人就35岁毕业退休

开发者的AI认知指南:用大模型重新理解人工智能(下)

第三篇 深度学习探索:神经网络的奥秘解析 从手工特征工程到自动特征学习,深度学习为什么能让AI"看懂"图片、"听懂"语音?让我们用开发者的视角揭开神经网络的神秘面纱。 深度学习的"代码革命" 还记得我们在第二…

基于单片机智能消毒柜设计

传送门 👉👉👉👉其他作品题目速选一览表 👉👉👉👉其他作品题目功能速览 概述 本设计实现了一种基于单片机的高效智能消毒柜系统,集精准灭菌、安全防护与能耗管理于…

什么是GCN?GCN与GNN有哪些区别?

文章目录1. 什么是图神经网络(GNN)GNN通用计算框架2. 图卷积网络(GCN)详解2.1 GCN核心公式2.2 GCN特点3. GCN与GNN的区别4. 如何选择GCN或GNN5. 典型应用案例6. 代码示例(PyTorch Geometric)7. 发展趋势1. 什么是图神经网络(GNN) 图神经网络(Graph Neural Network, GNN)是一类…

【HarmonyOS】ArkUI - 声明式开发范式

一、UI 开发框架 在 HarmonyOS 开发中,官方主要推出了两种开发框架,一个是基于 Java 的,一个是基于 ArkTS 的。 基于 Java:应用中所有用户界面元素都由基础组件 Component 和组件容器 ComponentContainer 对象构成。基于 ArkTS&…

Python 绘制各类折线图全指南:从基础到进阶

折线图是数据可视化中最常用的图表类型之一,适用于展示数据随时间或有序类别变化的趋势。无论是分析销售额波动、温度变化,还是对比多组数据的趋势差异,折线图都能直观呈现数据的变化规律。本文将详细介绍如何用 Python 的 Matplotlib、Seabo…

MySql 运维性能优化

内存相关配置 innodb_buffer_pool_size:这是 InnoDB 存储引擎最重要的参数,用于缓存数据和索引。建议设置为服务器可用内存的 50%-70%(对于专用数据库服务器)。 innodb_buffer_pool_size 8G # 根据服务器内存调整innodb_log_buf…

UG 图形操作-找圆心

【1】点击分析-测量【2】 选择点,点对话框【3】选择圆弧中心【4】 选择对象

Spring Boot 配置文件解析

一、前言SpringBoot 使用一个全局的配置文件,配置文件名固定的;application.propertiesapplication.yml配置文件的作用:修改SpringBoot自动配置的默认值;SpringBoot在底层都给我们自动配置好;YAML(YAML Ain…

【JS】事件类型(可addEventListener监听)

文章目录1. 窗口/视图相关事件2. 鼠标事件3. 键盘事件4. 焦点事件5. 表单事件6. 触摸事件(移动端)7. 其他重要事件使用示例 // 监听滚动事件 useEffect(() > {const handleScroll () > {console.log("当前滚动位置:", window.scrollY);…

【3GPP】5G专用词汇1

〇、在5G通信领域,类似RRU(远端射频单元)、UE(用户终端)、BS(基站)的专业术语非常丰富,涵盖设备、功能、架构、技术等多个层面。以下是分类整理的常见5G名词及其说明: 一…

基于 FFT + VMD 预处理的 1DCNN‑Informer 双支路并行、多头注意力融合分类模型

1  引言 现代工业设备的运行状态高度复杂、故障类型日趋多样,单一特征处理或单一路径模型常难以兼顾高精度与实时性。本期推出的模型**“FFT+VMD→1DCNN‑Informer→多头注意力”**流水线,将频域分解与时序建模结合,通过双支路并行特征提取和注意力融合,在旋转机械、电力…

ndarray的创建(小白五分钟从入门到精通)

ndarray的创建用途方法语法示例核心作用输出示例基础构造▪ 从 Python 数据结构创建np.array()np.array([[1, 2], [3, 4]])将列表/元组转换为 ndarrayarray([[1, 2], [3, 4]])▪ 复制数组np.copy()np.copy(arr)创建独立副本(深拷贝)与原数组相同但不共享…

考研数据结构Part1——单链表知识点总结

一、前言单链表是线性表的链式存储结构,作为数据结构中最基础也是最重要的线性结构之一,在考研数据结构科目中占有重要地位。本文将总结带头结点单链表的各项基本操作,包括初始化、插入、删除、查找等,并附上完整C语言实现代码&am…

笔试——Day15

文章目录第一题题目思路代码第二题题目:思路代码第三题题目:思路代码第一题 题目 平方数 思路 判断⼀个数开根号之后左右两个数的平⽅,哪个最近即可 代码 第二题 题目: 分组 思路 枚举所有的结果,找到第一个复合要…

物联网全流程开发记录

问题 有数据采集设备,服务器,上位机用户显示三部分,采集设备将采集的数据发送至服务器。服务器将数据保存,上位机读取服务器保存的数据库显示。当出现多设备,多用户时,如何通过多设备对应多用户&#xff0c…