STM32-串口通信波特率计算以及寄存器的配置详解

您好,我们一些喜欢嵌入式的朋友一起建立的一个技术交流平台,本着大家一起互相学习的心态而建立,不太成熟,希望志同道合的朋友一起来,抱歉打扰您了QQ群372991598

串口通信基本原理
处理器与外部设备通信的两种方式
并行通信
传输原理:数据各个位同时传输。

优点:速度快
缺点:占用引脚资源多

串行通信
传输原理:数据按位顺序传输
优点:占用引脚资源少
缺点:速度相对较慢

按照数据传送方向,分为:

单工:数据传输只支持数据在一个方向上传输;
半双工:允许数据在两个方向上传输,但是,在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信;
全双工:允许数据同时在两个方向上传输,因此,全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力。

串行通信的通信方式

同步通信:带时钟同步信号传输。如SPI,lIC通信接口
异步通信:不带时钟同步信号。如UART(通用异步收发器),单总线

常见串行通信接口
在这里插入图片描述
STM32的串口通信接口
UART:通用异步收发器

USART:通用同步异步收发器

大容量STM32F10x系列芯片,如STM32F103ZET6,包含3个USART和2个UART

可以在芯片的数据手册中查到各串口所接的引脚
在这里插入图片描述
UART异步通信方式特点
全双工异步通信;
分数波特率发生器系统,提供精确的波特率;
发送和接收共用的可编程波特率,最高可达4.5Mbits/s;
可编程的数据字长度(8位或者9位);
可配置的停止位(支持1或者2位停止位);
可配置的使用DMA多缓冲器通信;
单独的发送器和接收器使能位;
检测标志:1.接收缓冲器 2.发送缓冲器空 3.传输结束标志
多个带标志的中断源。触发中断。
其他:校验控制,四个错误检测标志。
串口通信过程
在这里插入图片描述
STM32串口异步通信需要定义的参数
当通信线路上电平状态为1,表示当前线路上没有数据传送,串口处于空闲。

1.起始位:先发出一个逻辑"0"的信号,表示传输字符的开始。

2.数据位(8位或者9位):紧接着起始位之后,数据位的个数可以是4、5、6、7、8等,构成一个字符,从最低位开始传送。

3.奇偶校验位(第9位):数据位加上这一位后,使得"1"的位数应为偶数(偶校验)或奇数(奇校验),以此来校验资料传送的正确性。可有可无,CRC校验更准确

4.停止位(1,15,2位):它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。

5.波特率设置

波特率是每秒钟传输的比特位,一般为4800、9600、115200,波特率越大,则数据传输速度越快,但这样就需要接收端也要快速的接收,同时容易受到干扰;波特率越小则传输越慢,抗干扰能力加强;

一般工业领域使用9600比较多,如果是单片机与模块之间的通信,如WiFi模块,则用115200,能及时通信
常用的串口相关寄存器
USART_SR状态寄存器

USART_ DR数据寄存器

USART_BRR波特率寄存器

寄存器的详细描述在stm32中文参考手册中25.6节USART寄存器描述中可以查看到

波特率计算方法
在STM32中文参考手册的USART框图中,这一部分是波特率设置示意图
在这里插入图片描述

在这里插入图片描述
上式中,fPCLKx是给串口的时钟(PCLK1用于USART2、3、4、5,PCLK2用于USART1);USARTDIV是一个无符号定点数。我们只要得到USARTDIV的值,就可以得到串口波特率寄存器USART1->BRR的值,反过来,我们得到USART1->BRR的值,也可以推导出USARTDIV的值。但我们更关心的是如何从 USARTDIV的值得到USART_BRR的值,因为一般我们知道的是波特率,和 fPCLKx的时钟,要求的就是USART_BRR的值。
只有USART1使用PCLK2(最高72MHz),其它USART使用PCLK1(最高36MHz)。
参考手册中的波特率计算表
在这里插入图片描述

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

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

相关文章

邮箱地址验证软件有哪些-邮件地址验证软件

邮箱地址验证软件是帮助用户验证电子邮箱地址是否有效和真实存在的工具。以下是一些常用的邮箱地址验证软件: 易邮件地址验证大师:这是电子邮件营销平台MailerLite提供的一个简单的电子邮件验证工具,通过多层验证过程保证高准确率。寅甲邮件…

ChatGPT-4o 实战 如何快速分析混淆加密和webpack打包的源码

ChatGPT-4o 几个特点 一个对话拥有长时间的记忆,可以连续上传文件,让其分析,最大一个代码文件只能3M,超出3M的文件,可以通过split-file可以进行拆分 其次ChatGPT-4o可以生成文件的下载链接,这有利于大文件的…

TypeScript的数据类型系统

TypeScript的数据类型系统 在上一篇文章中,我们介绍了TypeScript的基本概念和它与JavaScript的关系。TypeScript的核心优势之一是其强大的类型系统,它提供了丰富的数据类型,使得代码更加可靠和易于维护。本文将深入探讨TypeScript中的各种数…

gpt4o在哪用?

GPT-4o功能? 1.感知用户情绪:前沿研究部门主管陈信翰(Mark Chen)让ChatGPT-4o聆听他的呼吸,聊天机器人侦测到他急促的呼吸,并幽默地建议他不要像吸尘器那样呼吸,要放慢速度。随后Mark深呼吸一次…

浏览器插件Video Speed Controller(视频倍速播放),与网页自身快捷键冲突/重复/叠加的解决办法

浏览器插件Video Speed Controller(视频倍速播放),与网站自身快捷键冲突/重复/叠加的解决办法 插件介绍问题曾今尝试的办法今日发现插件列表中打开Video Speed Controller的设置设置页面翻到下面,打开实验性功能。将需要屏蔽的原网…

邮件API接口的优势有哪些?如何有效整合?

邮件API怎么选?SendCloud与AokSend的性能对比分析? 邮件API接口作为企业与用户沟通的重要桥梁,其重要性不言而喻。Aok将深入探讨邮件API接口的优势、有效整合的方法、选择标准以及SendCloud与AokSend两款邮件发送服务的性能对比分析。 邮件…

杨校老师项目之基于SpringBoot+Shiro+Vue的企业人事管理系统

1.获取代码: 有偿获取:mryang511688 2.技术栈 后端 SpringBoot MySQL mybatis-plus shiro Redis 前端 Vue Element-UI 3.开发环境 JDK1.8、Maven3.5.4、MySQL5.7、Redis5.0.5、IntelliJ IDEA、nodejs 4.内置功能 Springboot的项目,…

Hive的窗口函数

定义: 聚合函数是针对定义的行集(组)执行聚集,每组只返回一个值.如sum()、avg()、max() 窗口函数也是针对定义的行集(组)执行聚集,可为每组返回多个值.如既要显示聚集前的数据,又要显示聚集后的数据.步骤: 1.将记录分割成多个分区. 2.在各个分区上调用窗…

工业派-配置Intel神经计算棒二代(NCS2)

最近两天在工业派ubuntu16.04上配置了Intel神经计算棒二代——Intel Neural Compute Stick,配置过程之艰辛我都不想说了,实在是太折磨人。不过历尽千辛万苦,总算让计算棒可以在工业派ubuntu16.04系统上跑了,还是蛮欣慰的。 注&…

究极完整版!!Centos6.9安装最适配的python和yum,附带教大家如何写Centos6.9的yum.repos.d配置文件。亲测可行!

前言! 这里我真是要被Centos6.9给坑惨了,最刚开始学习linux的时候并没有在意那么的,没有考虑到选版本问题,直到23年下半年,官方不维护Centos6.9了,基本上当时配置的文件和安装的依赖都用不了了&#xff0c…

干式蒸发器、满液式蒸发器以及降膜式蒸发器的介绍

干式蒸发器 1、干式蒸发器原理、定义 干式蒸发器制冷剂在换热管内通过,冷水在高效换热管外运行,这样的换热器换热效率相对较低,其换热系数仅为光管换热系数的2倍左右,但是其优点是便于回油,控制较为简便,…

零知识证明:哈希函数-Poseidon2代码解析与benchmark

1、哈希函数(Hash Function)与Poseidon 在密码学中,哈希函数是一种将任意大小的数据映射到固定大小的输出的函数。哈希函数的输出称为哈希值或哈希码。哈希函数具有单向性和抗碰撞性。一些常见的哈希函数包括 MD5、SHA-1、SHA-256 和 SHA-3。例如,假设您要验证一个文件的完整…