STM32——串口通信原理

article/2025/10/14 10:10:52

STM32——串口通信

    • 一、硬件部分
      • 1、RS232标准
      • 2、USB转串口(TTL)
      • 3、原生的串口到串口(TTL->TTL)
    • 二、串口通信协议
    • 三、STM32串口通信功能框图
      • 1、引脚
      • 2、USART通信相关寄存器(最好过一遍,或者在试验之后回过来看一下,了解一下其工作机制)
      • 3、波特率

一、硬件部分

RS232通信和TTL的区别只有一点,那就是在于硬件机制(电平),如果需要做RS232和TTL的转换,那就需要借助转换芯片来完成。
在这里插入图片描述

TTLRS232
0-5V-15 - 15V
高电平置1,低电平置0高电平置0,低电平置1

1、RS232标准

在这里插入图片描述

2、USB转串口(TTL)

在这里插入图片描述

3、原生的串口到串口(TTL->TTL)

在这里插入图片描述

二、串口通信协议

在这里插入图片描述

起始位:由一个逻辑0的数据位表示

停止位:由0.5、1、1.5或2个逻辑1的数据位表示,通常选用1个位

有效数据:起始位后面紧接着就是有效数据,有效数据的长度常被约定为5、6、7、8或9位

校验位:校验位是可选的,为数据提供抗干扰性。
校验的方法主要有:
1、奇校验(odd):有效数据和校验位中“1”的个数为奇数
2、偶校验(even):有效数据和校验位中“1”的个数为偶数
3、0校验(space):不管有效数据内容是什么,校验位总是0
4、1校验(mark):同上,校验位总是1
5、无校验(noparity):数据包中不包含校验位

三、STM32串口通信功能框图

使用单片机外设之前,要先看看USART(通用同步异步收发器)的功能框图:
在这里插入图片描述
图片来源:STM32中文参考手册 25-3章节

我们将上面的功能框图划分成四个部分:

1、引脚

通过上图我们可以看到一共有8个引脚:

引脚功能
TX数据发送
RX数据接收
SCLK时钟,仅同步通信时使用
nRTS请求发送(Request To Send)
nCTS允许发送(Clear To Send)
SW_RX、IRDA_OUT、IRDA_IN红外相关配置

在这里插入图片描述
在这里需要注意的是:USART1-3是支持同步通信的,但是其挂载的总线不同,如果要从USART1换成USART2,那么其时钟也要修改
对于一款芯片的引脚功能,可以通过STM32F10X数据手册——Pinouts and pin description查询
ST每个系列的芯片都有一个数据手册,里面有引脚的详细功能,对于部分引脚来说,都是多个功能复用的,在写程序的时候享用到哪个功能,就在初始化时对它进行相应的配置,即通用功能配置和相应功能的初始化配置。

2、USART通信相关寄存器(最好过一遍,或者在试验之后回过来看一下,了解一下其工作机制)

如下图所示,USART_DR寄存器是9位有效的,包含一个发送数据寄存器TDR和一个接收数据寄存器RDR,是一个地址对应的两个物理内存。对应的是USART的全双工、半双工通信机制。
在这里插入图片描述
图片来源:STM32中文参考手册 25.6.2章节

我们先来看一下串口数据格式:
在这里插入图片描述
具体用多少位,是由USART_CR1寄存器决定的:
在这里插入图片描述
在这里插入图片描述
这里的n表示不确定,是由另外的寄存器来配置的,控制停止位的寄存器是USART_CR2:
在这里插入图片描述
在这里插入图片描述
校验位是由USART_CR1寄存器控制
在这里插入图片描述
在这里插入图片描述
当校验位出错时,就会产生校验错误,这时USART_SR的PE位就会置1:
在这里插入图片描述

3、波特率

在这里插入图片描述
在这里插入图片描述


http://chatgpt.dhexx.cn/article/x7wHXio3.shtml

相关文章

STM32串口通信,CH340工作原理

目录 一、串口协议 1.设备间的通信方式 2.RS-232标准 1.RS232电平与TTL电平的区别 2.RS-232串口简介 二、USB转232模块(CH340为例) 1.CH340简介 2.实物接线 三、参考文献 一、串口协议 串行接口是一种可以将接收来自CPU的并行数据字符转换为连续的…

STM32-串口通信

1 串行通信接口背景知识 串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式,因为它简单便捷,因此大部分电子设备都支持该通讯方式,其通讯协议可分层为协议层和物理层。物理层规定通信协议中具有机械、电子功能的特性&#…

STM32 USART—串口通信

目录 一、串口通信协议物理层电平标准: 1.RS232标准: 2.USB转串口通讯(常用) 3.原生的串口到串口 二、串口通信协议软件层: 三、串口功能框图 1.引脚 2.数据寄存器USART_DR 3.字符帧组成介绍 4.发送与接收数据…

STM32 —— STM32 的串口通信

STM32 —— STM32 的串口通信 STM32的串口通信接口有两种,分别是:UART(通用异步收发器)、USART(通用同步异步收发器)。而对于大容量 STM32F10x 系列芯片,分别有 3 个 USART 和 2 个 UART 串口通信过程: 目前还处于入门阶段&#x…

STM32——串口通信

首先声明,本文是在查阅资料之后进行的一些内容总结,仅用于个人学习记录。 一、串口通信基本原理 按照数据传送方向分类 1、单工:数据传输只支持数据在一个方向上传输 2、半双工:允许数据在两个方向上传输。但是,在…

STM32 - 串口(USART)通信详解

STM32 - 串口(USART)通信 文章目录 STM32 - 串口(USART)通信1、STM32 串口简介2、串口的工作方式3、串口通信协议3.1: 物理层3.1.1: TTL、RS-232 标准3.1.2:USB 转串口(划重点&#…

STM32-串口通信详解总结

1. 串口通信方式 UART:universal asynchronous receiver and transmitter 通用异步收/发器,即串行异步全双工收发器。 USART: universal synchronous asynchronous receiver and transmitter 通用同步/异步收/发器,即串行异步/同步全双工收发…

(十三)STM32——串口通信(UART)

目录 学习目标 内容 通信方法 并行通信 串行通信 通信方向 通信方式 UART 特点 串口参数 通信流程 寄存器 USART_SR USART_DR USART_BRR 过程 代码 运行结果 运行结果 遇到的问题 总结 学习目标 本节我们要学习的的是STM32的通信部分,主要介绍…

STM32—串口通讯详解

串口通讯目录 物理层协议层USART简介开发板与上位机的连接代码讲解:一.初始化结构体二.NVIC配置中断优先级三.USART配置函数讲解四.传输数据的函数:1.发送一个字节2.发送字符串3.重定向printf函数发送字符串4.重定向getchar函数接收字符5.通过中断接收 结…

stm32实现串口通信和LED灯点亮

stm32串口通信 串口协议和RS—232标准RS232电平与TTL电平的区别USB/TTL转RS232 CH340串口安装安装stm32cubemx并编写程序实现led灯的周期闪烁 用stm32完成USART串口通信接下来进行波形观察总结 两个工程完整代码 串口协议和RS—232标准 串口通信协议:是指规定了数据…

iconCls和el-icon属性对应的图标大全(带图)

千言万语,不如直接上图效果好 element UI el-icon 直接看官网都有,很全 https://element.eleme.io/#/zh-CN/component/icon

ext 中的iconCls配置以及使用以及路径问题

使用过Ext(http://www.extjs.com)的同志都应该知道,每一个组件(Component)在初始化的时候,都会有一个配置参数(Config){在Ext2中,基本上所有的组件的构造函数只接受一个参…

EXT iconCls说明

今天学习ext 看examples中的事例,其中有一个地方是这样写的: new ButtonPanel( Icon Only, [{ iconCls: add16 },{ iconCls: add24, scale: medium },{ …

cls extjs5_73. 解决ExtJS TreePanel 的 iconCls设置问题

转自:https://blog.csdn.net/hanchuang213/article/details/62881568 很久没有写代码了,最近在做一个在线帮助网站,于是又捡起了 ExtJS,我用 TreePanel 做为左边栏的导航树,我希望能够根据节点指向的内容来定义节点的图…

常规功能和模块自定义系统 (cfcmms)—025开发日志(创建iconCls的field)

常规功能和模块自定义系统 (cfcmms)—025开发日志(创建iconCls的field) 这一节是临时插入的工作日志。 在本系统中可以自定义某些图标,图标的样式都是手工录入的,为了能直观的选择iconCls中的图标,开发了此控件。extjs中内置了font-awesome字…

UniGui中使用IconCls

在使用UniGui的时候,我时候我们需要使用系统自己的图标,通常会如下图一样的使用方式: 选择ICON对齐方式及系统定义好的ICON对应值。但实际上UniGui中可以使用的图标远远大于他已定义的这十几个(或者应该说是EXJS原本就多&#xff…

UniGui iconCls字符图标的引用

游览unigui官方论坛,发现了iconCls字符图标的引用功能,测试了一下,很好用。 引用格式:iconCls: {fontCls} {iconPrefix}-{iconName} 例子:iconCls: x-fa fa-home

Easyui-iconCls 的队应图标

(iconCls : ‘icon-cancel’,)(iconCls : ‘icon-add,)(iconCls : ‘icon-edit,) (iconCls : ‘icon-remove,)(iconCls : ‘icon-save,)(iconCls : ‘icon-cut,) (iconCls : ‘icon-ok,)(iconCls : ‘icon-no,)(iconCls : ‘icon-reload,) (iconCls : ‘icon-search,)(iconC…