【【萌新的STM32学习--24 USART的部分介绍】】

萌新的STM32学习–24 USART的部分介绍

STM32的USART的介绍
USART 英文解释是 通用同步异步收发器
UART 通用异步收发器

USART/UART 都可以与外部设备进行全双工异步通信
USART 我们常用的也是异步通信

USART 主要特征
1.全双工异步通信 2.单线半双工通信
3.单独的发送器和接收器使能位
4.可配置使用DMA的多缓冲器通信
5.多个带标志的中断源
在这里插入图片描述
SW_RX 是芯片内部的引脚我们不用去理会

RTS CTS是同步时钟才会用到的
SCLK也是同步才用到的
在这里插入图片描述
灰色框图里面的寄存器是用户不可见的 我们所能操纵的只是数据存储器 DR
在这里插入图片描述
TX:发送数据输出引脚
RX:接收数据输入引脚
SCLK:发送器时钟输出,适用于同步传输
SW_RX:数据接收引脚,属于内部引脚,用于智能卡模式
IrDA_RDI:IrDA 模式下的数据输入
IrDA_TDO:IrDA 模式下的数据输出
nRTS:发送请求,若是低电平,表示 USART 准备好接收数据
nCTS:清除发送,若是高电平,在当前数据传输结束时阻断下一次的数据发送

设置USART 波特率
在这里插入图片描述
在这里插入图片描述
fck 是给串口的时钟(USART2\3\3\4\5 的时钟源为 PCLK1,USART1 的时钟源PCLK2)
USARTDIV 是一个无符号的定点数,存放在波特率寄存器(USART_BRR)的低 16 位,DIV_Mantissa[11:0]存放的是 USARTDIV 的整数部分,DIV_Fractionp[3:0]存放的是 USARTDIV 的小数部
在这里插入图片描述
得到 USARTDIV = 39.0625,分离 USARTDIV 的整数部分与小数部分,整数部分为 39,即
0x27,那么 DIV_Mantissa = 0x27;小数部分为 0.0625,转化为十六进制即 0.0625*16 = 1,所以
DIV_Fractionp = 0x1,USART_BRR 寄存器应该赋值为 0x271,成功设置波特率为 115200。
值得注意 USARTDIV 是允许有余数的,我们用四舍五入进行取整,这样会导致波特率会有
所偏差,而这样的小误差是可以被允许的。
USARTDIV=DIV_Mantissa+(DIV_Fraction/16)
DIV_Mantissa是整数部分
DIV_Fraction 是小数部分

波特比率寄存器 BRR
在这里插入图片描述
在这里插入图片描述
USARTDIV=39.0625

怎么把USARTDIV的值写入USART_BRR
小数部分就是fraction=0.0625x16+0.5
+0.5是为了四舍五入
最低位左移4 因为存放的12位是【15:4】 小数部分就不必修改了直接放到【3:0】

乘16和左移4位的效果是一样的
表面看上去是
USARTDIV*16+0.5
因为USARTDIV=DIV_Mantissa+(DIV_Fraction/16)
算上去就是指整数位向左移动了4位

所以来说经过一步步简化 最后得到的结果是
在这里插入图片描述
写入寄存器的数据记录是: fck/baud+0.5

使用HAL库的好处就是会自动帮助我们设置完波特率

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

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

相关文章

优思学院|企业推行精益生产要具备哪些前提条件?

企业界早已充斥着各种方法和策略,试图模仿精益生产和六西格玛管理等成功之路,目标在于通过质量工具的运用来改善业务。然而,许多公司在推行这些方法的过程中都犯了一个大错:他们忽视了背后的企业文化和制度,以及精益生…

打破时空限制:海外网红营销中的直播与虚拟互动

随着全球互联网的普及和技术的迅速发展,传统的商业模式也在不断演变。其中,海外网红直播带货成为了一种引人注目的全新营销方式。近年来,虚拟技术的蓬勃发展为海外网红直播带货提供了新的可能性,不仅丰富了消费者的购物体验&#…

计算机专业学生实习的一条明路

当计算机专业的学生毕业后学习嵌入式开发优势也会非常的明显。计算机专业提供了坚实的编程基础、数据结构和算法知识,这些都是嵌入式开发所需要的基本技能。视频后方有免费的嵌入式学习资料,按需自取。此外,对操作系统和系统编程的了解也为嵌…

如何在Windows本地快速搭建SFTP文件服务器,并通过端口映射实现公网远程访问

文章目录 1. 搭建SFTP服务器1.1 下载 freesshd服务器软件1.3 启动SFTP服务1.4 添加用户1.5 保存所有配置 2 安装SFTP客户端FileZilla测试2.1 配置一个本地SFTP站点2.2 内网连接测试成功 3 使用cpolar内网穿透3.1 创建SFTP隧道3.2 查看在线隧道列表 4. 使用SFTP客户端&#xff0…

【SVN】 代码版本管理工具使用步骤以及全局忽略不需要提交的文件夹

2023年,第36周。给自己一个目标,然后坚持总会有收货,不信你试试! SVN是Subversion的简称,是一个开源的版本控制系统,用于管理软件开发过程中的代码版本和文件变更。 它提供了跟踪文件修改、协同开发、版本回…

汽车服务门店小程序模板制作指南

在数字化时代,一个小程序的力量不可忽视。它不仅是展示品牌形象和提供用户服务的重要工具,更是扩大客户群体和提高营收的关键手段。对于汽车服务门店来说,拥有一个精美且功能齐全的小程序,更将成为你在竞争激烈的市场中的重要武器…

AUTOSAR开发工具DaVinci Configurator里的Modules

DaVinci Configurator 里面有个Module这个概念。 如你所想,基本上跟AUTOSAR架构里面的Module相对应 从软件的Project菜单中的Basic Editor项可以打开 打开这个菜单后,会看到很多Modules项以及其相关配置项 这个Basic Editor显示出整个ECU配置中的所有…

微信开发之朋友圈自动评论的技术实现

简要描述: 朋友圈评论 请求URL: http://域名地址/snsComment 请求方式: POST 请求头Headers: Content-Type:application/jsonAuthorization:login接口返回 参数: 参数名必选类型说明wI…

goroutine的一点东西

前面的两篇,从相对比较简单的锁的内容入手(也是干货满满),开始了go的系列。这篇开始,进入更核心的内容。我们知道,go应该是第一门在语言层面支持协程的编程语言(可能是我孤陋寡闻),goroutine也完全算的上是go的门面。g…

Python Qt(八)Treeview

源代码: # -*- coding: utf-8 -*-# Form implementation generated from reading ui file qt_treeview.ui # # Created by: PyQt5 UI code generator 5.15.9 # # WARNING: Any manual changes made to this file will be lost when pyuic5 is # run again. Do not…

Jmeter和Postman那个工具更适合做接口测试?

软件测试行业做功能测试和接口测试的人相对比较多。在测试工作中,有高手,自然也会有小白,但有一点我们无法否认,就是每一个高手都是从小白开始的,所以今天我们就来谈谈一大部分人在做的接口测试,小白变高手…