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

初学者STM32—USART

一、简介

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.dtcms.com/a/290720.html

相关文章:

  • 了解类加载器吗?类加载器的类型有哪些?
  • Java 大视界 -- 基于 Java 的大数据分布式计算在地球物理勘探数据处理与地质结构建模中的应用(356)
  • 鹏鼎控股入职测评综合能力真题SHL测评题库2025年攻略
  • postgresql16.4 配置 数据库主从
  • PyTorch 实现 CIFAR-10 图像分类:从数据预处理到模型训练与评估
  • git bash命令不够完善,想整合msys2该怎么办?
  • 02-UE5蓝图初始的三个节点作用
  • 文娱投资的逆势突破:博派资本的文化旅游综合体战略
  • 阿里云宝塔Linux面板相关操作记录
  • 照片to谷歌地球/奥维地图新增功能:导出 GeoJSON 数据
  • 高级技术【Java】【反射】【注解】【动态代理】
  • c++:父类的析构函数定义为纯虚函数注意事项
  • “专属私有云”或“行业公有云(逻辑隔离的公共云专区)”两种主流部署模式到底有什么区别?政务云不就应该是专属的私有云么?政务云是不是不能混用?
  • 网络编程基础:从 OSI 模型到 TCP/IP 协议族的全面解析
  • 【AI高性能网络解析】第三期:数据快递,海量数据跨广域高效传输技术实践
  • 计算机网络:概述层---计算机网络的组成和功能
  • harbor镜像仓库由原来的v2.11.1版本升级到v2.13.1,数据不丢失
  • Taro 生命周期相关 API 详解
  • HTML整理
  • Lists的分批次操作
  • 安卓第一个项目
  • 信息学奥赛一本通 1576:【例 2】选课 | 洛谷 P2014 [CTSC1997] 选课
  • Netty中CompositeByteBuf的使用
  • 位标志法处理多选字段在数据库中的存储方式 查询效率与扩展性之间的权衡
  • https正向代理 GoProxy
  • 苹果最新系统iOS 17的调试和适配方法 - Xcode 14.3.1 真机调试指南
  • How does Misinformation Affect Large Language ModelBehaviors and Preferences?
  • Spring Boot 集成 RabbitMQ:普通队列、延迟队列与死信队列全解析
  • iOS WebView 调试实战 页面跳转失效与历史记录错乱的排查路径
  • 物流链上的智慧觉醒:Deepoc具身智能如何重塑搬运机器人的“空间思维”