嵌入式开发之STM32学习笔记day15

article/2025/8/22 7:54:44

 STM32F103C8T6 USART串口协议

1 通信接口

  • 通信的目的:将一个设备的数据传送到另一个设备,扩展硬件系统
  • 通信协议:制定通信的规则,通信双方按照协议规则进行数据收发

名称

引脚

双工

时钟

电平

设备

USART

TXRX

全双工

异步

单端

点对点

I2C

SCLSDA

半双工

同步

单端

多设备

SPI

SCLKMOSIMISOCS

全双工

同步

单端

多设备

CAN

CAN_HCAN_L

半双工

异步

差分

多设备

USB

DPDM

半双工

异步

差分

点对点

USART(通用同步/异步收发传输器)

使用TX(发送)和RX(接收)引脚进行全双工通信,意味着可以同时发送和接收数据。

采用异步时钟,没有专用的时钟线,数据位和停止位用于同步。

信号电平是单端的,即信号通过单一导线传输。

通常用于点对点通信,即连接两个设备。

I2C(集成电路间通信)

使用SCL(时钟线)和SDA(数据线)进行半双工通信,这意味着在同一时间内只能发送或接收数据。

是一种同步通信协议,数据传输与时钟信号同步。

信号电平也是单端的。

支持多设备通信,设备通过地址进行识别。

SPI(串行外设接口)

使用SCLK(时钟线)、MOSI(主设备输出/从设备输入)、MISO(主设备输入/从设备输出)和CS(片选)引脚进行全双工通信。

是一种同步通信协议,数据传输与时钟信号同步。

信号电平是单端的。

支持多设备通信,每个设备通过独立的片选信号进行选择。

CAN(控制器局域网络)

使用CAN_H(高电平)和CAN_L(低电平)引脚进行半双工通信。

是一种异步通信协议,没有专用的时钟线,数据位和停止位用于同步。

信号电平是差分的,即信号通过一对导线传输,提高了抗干扰能力。

支持多设备通信,常用于汽车和工业控制系统。

USB(通用串行总线)

使用DP(数据正)和DM(数据负)引脚进行半双工通信。

是一种异步通信协议,数据传输与时钟信号同步。

信号电平是差分的,即信号通过一对导线传输,提高了数据传输的可靠性。

通常用于点对点通信,连接计算机和外部设备。

2 串口介绍

  • 串口是一种应用十分广泛的通讯接口,串口成本低、容易使用、通信线路简单,可实现两个设备的互相通信
  • 单片机的串口可以使单片机与单片机、单片机与电脑、单片机与各式各样的模块互相通信,极大地扩展了单片机的应用范围,增强了单片机系统的硬件实力

3 硬件电路

  • 简单双向串口通信有两根通信线(发送端TX和接收端RX
  • TX与RX要交叉连接
  • 当只需单向的数据传输时,可以只接一根通信线
  • 当电平标准不一致时,需要加电平转换芯片

4 电平标准

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

  1. TTL电平:+3.3V+5V表示10V表示0
  2. RS232电平-3~-15V表示1+3~+15V表示0
  3. RS485电平:两线压差+2~+6V表示1-2~-6V表示0(差分信号)

5 串口参数与时序

  • 波特率:串口通信的速率
  • 起始位:标志一个数据帧的开始,固定为低电平
  • 数据位:数据帧的有效载荷,1为高电平,0为低电平,低位先行
  • 校验位:用于数据验证,根据数据位计算得来
  • 停止位:用于数据帧间隔,固定为高电平

6 串口时序

7 串口外设

7.1 USART简介

        通用同步异步收发器USART(Universal Synchronous/Asynchronous Receiver/Transmitter提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。USART利用分数波特率发生器提供宽范围的波特率选择。 它支持同步单向通信和半双工单线通信,也支持LIN(局部互连网),智能卡协议和IrDA(红外数据 组织)SIR ENDEC规范,以及调制解调器(CTS/RTS)操作。它还允许多处理器通信。 使用多缓冲器配置的DMA方式,可以实现高速数据通信。

  • USART是STM32内部集成的硬件外设,可根据数据寄存器的一个字节数据自动生成数据帧时序,从TX引脚发送出去,也可自动接收RX引脚的数据帧时序,拼接为一个字节数据,存放在数据寄存器里
  • 自带波特率发生器,最高达4.5Mbits/s
  • 可配置数据位长度(8/9)、停止位长度(0.5/1/1.5/2
  • 可选校验位(无校验/奇校验/偶校验)
  • 支持同步模式、硬件流控制、DMA、智能卡、IrDALIN
  • STM32F103C8T6 USART资源: USART1 USART2 USART3

7.2 基本结构

分析:

        该图展示了一个基于GPIO的串行通信流程,其中PCLK2/1作为时钟信号输入到波特率发生器,生成所需的通信速率,然后分别控制发送控制器和接收控制器。发送控制器将数据从发送数据寄存器TDR通过发送移位寄存器发送出去,而接收控制器则从接收移位寄存器读取数据并存入接收数据寄存器RDR。最终,GPIO引脚负责实际的发送(TX)和接收(RX)操作,实现数据的串行通信。

7.3 数据帧

9位字长

1个起始位、8个数据位和1个停止位。

图中显示了数据帧的传输过程,其中M位被设置,可能的奇偶检验位用于错误检测。

在数据帧之后有一个空闲帧,表示没有传输活动的时间段。

断开帧表示传输的结束,此时线路可能返回到空闲状态。

起始位和停止位用于帧同步,LBCL位控制最后一个数据的时钟脉冲。

8位字长

1个起始位、7个数据位和1个停止位。

未设置M位,表示没有额外的第9位。

同样展示了数据帧、空闲帧和断开帧。

起始位和停止位用于帧同步,LBCL位控制最后一个数据位的时钟脉冲。

        这张图片展示了在串行通信中配置不同数量的停止位对数据帧的影响。图中描述了四种不同的停止位配置方式,每种方式都基于8位字长(未设置M位,即没有第9位)。

        a) 1个停止位

        数据帧由1个起始位、8个数据位和1个停止位组成。

        停止位用于标识一个数据帧的结束,并为下一个数据帧的起始位提供间隔。

        b) 1½个停止位

        数据帧由1个起始位、8个数据位和1½个停止位组成。

        这种配置不常见,1½个停止位可能用于特定的通信协议,以提供更短的帧间隔。

        c) 2个停止位

        数据帧由1个起始位、8个数据位和2个停止位组成。

        增加停止位的数量可以提高数据帧之间的区分度,减少帧间干扰的可能性。

        d) %个停止位

        这种配置可能表示可编程的停止位数,%可能代表一个变量或占位符号,表明停止位数可以根据需要进行配置。

        总的来说,停止位的配置对串行通信的可靠性和效率有重要影响,适当的停止位配置可以优化数据传输性能。

7.4 起始位侦测

        图252展示了串行通信中起始位侦测的工作原理,其中接收信号线在空闲状态下保持高电平,当检测到起始位时信号线从高电平变为低电平,理想的采样时钟在信号稳定后的特定时刻对信号线进行采样,而实际采样时钟可能存在偏差,图中还描述了判断起始位的条件,即通过检测下降沿以及确保每3位中至少有2个逻辑0来识别起始位,数据采样发生在位时间长度的中间,确保了数据的准确采集,整个机制对于实现可靠的串行数据传输和帧同步非常关键。

7.5 数据采样

        上图描述了串行通信中的数据采样过程,其中接收信号线在起始位后开始传输数据,采样时钟在每个数据位的中间时刻进行采样以减少噪声影响,图中将一个数据位的时间长度分为16等分,分别在7/16和6/16时刻进行采样,确保数据位能被准确读取,从而实现可靠的串行数据传输。

7.6 波特率发生器

  • 发送器和接收器的波特率由波特率寄存器BRR里的DIV确定
  • 计算公式:波特率 = fPCLK2/1 / (16 * DIV)

7.7 数据模式

  • HEX模式/十六进制模式/二进制模式:以原始数据的形式显示
  • 文本模式/字符模式:以原始数据编码后的形式显示

7.8 HEX数据包

7.9 文本数据包

7.10 HEX数据包接收

7.11 文本数据包接收

 


http://www.hkcw.cn/article/edcKdfAQKI.shtml

相关文章

Java版本的VPN(wlcn)1.3.1-JDK17-SNAPSHOT

项目介绍 wu-lazy-cloud-network 是一款基于(wu-framework-parent)孵化出的项目,内部使用Lazy ORM操作数据库,主要功能是网络穿透,对于没有公网IP的服务进行公网IP映射 使用环境JDK17 Spring Boot 3.0.2 版本更新 1…

javaweb 前言

Web的发展历史 Web的诞生 (1989-1991): 1989年,欧洲核子研究组织(CERN)的蒂姆伯纳斯-李提出了World Wide Web的概念,并发明了统一资源定位符(URL)、超文本传输协议(HTTP&#xff09…

<el-date-picker>配置禁用指定日期之前的时间选择(Vue2+Vue3)

今天突然接受到一个离谱的需求&#xff1a;有一个需要配置定时任务开始执行时间的组件&#xff0c;之前的做法都是用<el-form>的rules定义校验规则&#xff0c;也能实现效果&#xff0c;但是今天产品突发奇想&#xff1a;不能选的时间就置灰&#xff08;就是我们说的禁用…

Redis 主从节点

Redis 主从节点的核心区别 特性主节点 (Master)从节点 (Slave/Replica)读写权限可读可写只读&#xff08;默认配置&#xff09;数据流向数据来源从主节点同步数据连接关系可连接多个从节点只能连接一个主节点故障切换故障时需要手动/自动提升从节点可被提升为新的主节点命令执…

[NOIP 2001 普及组] 数的计算 Java

import java.util.*;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt();sc.close();int[] arr new int[n 1]; // 存储第i个数对应的合法数列数for (int i 1; i < n; i) {arr[i]; // 只有一个数n的数列…

【NATURE氮化镓】GaN超晶格多沟道场效应晶体管的“闩锁效应”

2025年X月X日,布里斯托大学的Akhil S. Kumar等人在《Nature Electronics》期刊发表了题为《Gallium nitride multichannel devices with latch-induced sub-60-mV-per-decade subthreshold slopes for radiofrequency applications》的文章,基于AlGaN/GaN超晶格多通道场效应晶…

Vue-Router 基础使用

Vue Router 是 Vue 官方的客户端路由解决方案。 客户端路由的作用是在单页应用 SPA 中将浏览器的 URL 和用户看到的内容绑定起来。当用户在应用中浏览不同页面时&#xff0c;URL 会随之更新&#xff0c;但页面不需要从服务器重新加载。 Vue Router 基于 Vue 的组件系统构建&a…

Linux服务器时间同步——Chronyd

需求&#xff1a;现有三台服务器&#xff0c;想要确保服务器间时间保持一致。 一、安装Chronyd 确认是否安装了chronyd服务 systemctl status chronyd 如果Linux系统中没有安装&#xff0c;可以通过如下命令进行安装&#xff1a; yum install chrony -y 注&#xff1a;确保…

手机实名认证接口如何用C#进行调用?

一、什么是手机实名认证接口&#xff1f; 通过输入用户的姓名与手机号码&#xff0c;或手机号与身份证号码&#xff0c;验证三者之间的匹配关系&#xff0c;从而判断该手机号是否属于指定用户本人。 二、为什么需要运营商二要素验证&#xff1f;传统方式有哪些局限&#xff1…

springboot多模块父pom打包正常,单模块报错

背景&#xff1a;因为项目开发中经常发测试环境&#xff0c;发现使用阿里的插件能一键上传&#xff0c;不用手动上传比较方便。但是多模块有多个启动jar的时候&#xff0c;全局打包太慢&#xff0c;单独打发现报错。这里贴一下我使用这个插件的方式&#xff1a; 附带一个我感觉…

硬件同步机制-Swap指令实现互斥的基本讲解

Swap 指令 Swap指令能原子地交换两个变量的值 &#xff0c;即这一操作不可分割、不会被中断。其代码逻辑为&#xff1a; boolean temp *a; &#xff1a;创建一个临时变量temp &#xff0c;将变量a的值暂存到temp中 。*a *b; &#xff1a;把变量b的值赋给变量a 。*b temp; &…

中国国运新引擎:下一代液晶技术突破如何重塑全球显示格局

一、国运崛起&#xff1a;中国在未来关键领域的集体突破 在全球科技竞争白热化的当下&#xff0c;中国正迎来关键领域的集中爆发。从新能源汽车到 5G 通信&#xff0c;从量子计算到航天工程&#xff0c;中国不仅打破了西方的技术封锁&#xff0c;更在多个战略领域实现了从 “跟…

在雄性小鼠自发脑网络中定位记忆巩固的因果中枢

目录 简要总结 摘要 1 引言 2 方法 3 结果 简要总结 这篇文章主要研究了雄性小鼠在自发脑网络中记忆巩固的因果中枢定位。记忆巩固涉及学习后休息和睡眠期间全脑网络的自发重组&#xff0c;但具体机制尚不清楚。目前理论认为海马体在这一过程中至关重要&#xff0c;但其他…

美国威胁退出俄乌冲突调解

△联合国安理会(资料图)当地时间5月29日,美国告知联合国安理会,如果俄罗斯决定继续在乌克兰进行军事行动,美国将不得不考虑退出旨在结束冲突的谈判努力。美国表示,目前提出的协议是对俄罗斯最好的结果,俄罗斯总统普京应该接受。此外,对俄罗斯的额外制裁仍在讨论中。美国…

flutter项目迁移空安全

重中之重 备份好项目文件&#xff0c;甚至连已经加载好的flutter库也可以备份。环境包升级 2.1 不要直接换成flutter:3.0以上的版本&#xff0c;这样做既有基本的库兼容问题&#xff0c;又有空安全下的语法问题(整个项目中需要增加 late、?、!的语法错误&#xff0c;一片报错的…

单亲妈妈抗癌6年去世 生命旅程的坚韧与无奈

单亲妈妈抗癌6年去世 生命旅程的坚韧与无奈!5月28日晚,浙江的单亲妈妈张潇群因结肠癌去世,年仅37岁。她在网络上是一位知名的抗癌博主,无数人关注着她的抗癌历程,从确诊到治疗的过程充满艰辛。浏览她的社交媒体,仿佛走进了一场关于疼痛的独白,无论是病痛的呻吟还是求生的…

深入理解C#泛型:提升代码复用与类型安全的利器

在现代软件开发中&#xff0c;编写灵活、可重用且类型安全的代码是每个开发者的追求。C#作为一种强类型语言&#xff0c;通过引入泛型(Generics)特性&#xff0c;完美地解决了代码重用与类型安全之间的矛盾。本文将全面探讨C#泛型的核心概念、实现原理、高级特性以及最佳实践&a…

Deepseek升级 低调发布性能提升

5月28日晚,DeepSeek在官方交流群中宣布R1模型已完成小版本试升级。今年3月,DeepSeek对V3模型进行小版本升级时也采用了同样的方式,先通过官方交流群宣布,随后才公布具体更新内容。本次试升级,DeepSeek依旧保持低调,没有发布详细的技术说明文档或举行发布活动。然而,据用…

AET3156AP电源方案 禾纳代理商

特性VDs-30V,ID-28ARDS(ON)13.5mOM(TYR.)VGS-10V&#xff0c;Ib-6ARDS(ON)18mOM(TYR.)VGS-4.5V&#xff0c;IB-5A可靠且坚固雪

学生管理系统V2.0

学生管理系统V2.0 需求: 要求实现一个基于指针的学生成绩管理系统&#xff0c;具体功能如下: 添加学生信息&#xff1a;输入学号和三门成绩&#xff0c;存储到数组中。显示所有学生信息&#xff1a;遍历数组&#xff0c;输出每个学生的学号和成绩。计算每个学生的平均分和总分&…