STM32标准库开发——USART串口外设

USART外设介绍

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

注意:同步时钟SCLK只支持输出不支持输入,因此一般用作异步收发器

USART基本框图

在这里插入图片描述

写数据:通过写操作,将数据写入发送数据寄存器TDR,当检测到有数据写入TDR时,硬件自动检测发送移位寄存器是否有数据,没有数据的话自动移动到发送移位寄存器。当数据移动到发送移位寄存器时,TXE位置1,这样就可以在TDR写入下一个数据。发送移位寄存器在发送控制器的控制下,将数据发送到TX
读数据:接收到的RX的数据在接收器的控制下,一位一位的写入接收移位寄存器,低位先行,数据移动完后会自动移动到接收数据寄存器,当RXNE接受数据寄存器非空 标志位为1时,数据就可以使用读操作读走。
硬件数据流控: nRTS(negative Request toSend)是输出脚,低电平有效。可以接到另一个串口设备的nCTS(negative Clear to Send)接收脚,它用于接收方向发送方发送控制信息。当一个设备接收数据效率太低时,可以用nRTS发送1,这样表示暂停发送。
唤醒单元:实现串口挂载多设备。可以填入一个串口地址,表示唤醒该串口,一般不常用
波特率发生器:本质上是分配器,但是可以实现更精准的分配,分配系数可以是小数。

数据帧

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

起始帧检测设计【读数据】

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

为了保证每一次采样的位置刚好都在位的正中间,串口通信专门设置了起始位帧检测,即在开始的一帧进行16分频检测,如果检测到下降沿0信号后,分别在3,5,7,8,9,10继续检测,必须保证每3位中有俩个0才算检测到,否则放弃之前捕获的下降沿信号重新捕获进行检测。当通过起始帧检测后,往后的每一帧都是在16分频后第7,8,9次进行采样,此时正好保证了在位中心进行采样。

波特率发生器

在这里插入图片描述

在这里插入图片描述

16分频正好对应前面提到的每一帧数据都要分为16次来采样以保证采样的位置对齐位中心

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

WebGL中开发AR应用

WebGL在本质上是用于在浏览器中进行3D和2D图形渲染的技术,而增强现实(AR)通常需要与现实世界的环境进行交互。要在WebGL中开发AR应用,您可以采取以下步骤,希望对大家有所帮助。北京木奇移动技术有限公司,专…

Arm Generic Interrupt Controller v3 and v4(GICv3v4)学习(一)

提示 该博客主要为个人学习,通过阅读官网手册整理而来(个人觉得阅读官网的英文文档非常有助于理解各个IP特性)。若有不对之处请参考参考文档,以官网参考文档为准。 Arm Generic Interrupt Controller v3 and v4学习一共分为三章&…

RHEL8 Samba服务器详细配置用户模式

任务: 配置server01为samba服务器,samba服务器的/companydata/sales为共享目录,共享名为sales,里面创建测试文件test_share.tar,创建用户组sales,创建组内用户sale1,要求配置用户模式访问&#…

Uniapp多选Popup(弹出层)

uniapp中多选组件很少,故个人简单开发了一个,可简单使用,也可根据个人需求稍微改进 支持的功能 单选多选(默认)限制选择数量默认选中禁用选项 属性说明 属性默认值说明singlefalsetrue为开启单选,否则为…

无需信用卡注册美区Apple ID指南

第一步 准备工作 1、一个没有注册过AppleID的邮箱,建议最好是Gmail邮箱 2、一个苹果手机,当然这个是必须的 3、需要科学上网 第二步 苹果网站注册 为了避免cookie的干扰,最好是在无痕模式下打开以上网页,创建你的AppleID&#…

rabbitmq-java基础详解

一、rabbitmq是什么? 1、MQ定义 MQ(Message Queue)消息队列 主要解决:异步处理、应用解耦、流量削峰等问题,是分布式系统的重要组件,从而实现高性能,高可用,可伸缩和最终一致性的架…

Spring+SpringMVC+Mybatis进行项目的整合

Spring SpringMVCM Mybatis 整合 一、 通过idea创建maven工程 二、 引入依赖项以及导入mybatis逆向工程的插件 将如下的文件替换所在工程的pom文件 <?xml version"1.0" encoding"UTF-8"?><project xmlns"http://maven.apache.org/POM/4…

HCIA的访问控制列表ACL

ACL -----access control-list 允许/拒绝 ACL作用&#xff1a; 1.实现访问控制 2.定义感兴趣流量 ACL分类&#xff1a; 标准ACL 2000-2999&#xff08;只关注源IP地址&#xff0c;使用时应该尽量靠近目标&#xff09; 扩展ACL 3000-3999&#xff1a;写ACL不能写在源上&…

反射计数 - 华为OD统一考试

OD统一考试 分值&#xff1a; 200分 题解&#xff1a; Java / Python / C 题目描述 给定一个包含 0 和 1 的二维矩阵, 给定一个初始位置和速度。 一个物体从给定的初始位置触发, 在给定的速度下进行移动, 遇到矩阵的边缘则发生镜面反射无论物体经过 0 还是 1&#xff0c;都不…

2024美赛数学建模思路 - 案例:异常检测

文章目录 赛题思路一、简介 -- 关于异常检测异常检测监督学习 二、异常检测算法2. 箱线图分析3. 基于距离/密度4. 基于划分思想 建模资料 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 一、简介 – 关于异常…

宠物空气净化器真的有用吗?五款猫用宠物空气净化器测评!

作为一个养猫四年的铲屎官&#xff0c;我不得不说&#xff0c;宠物空气净化器是21世纪养猫人最伟大的神器之一&#xff01; 当我刚开始养猫的时候&#xff0c;我并没有意识到猫毛会成为一个如此头疼的问题。虽然朋友们告诉我要做好心理准备&#xff0c;但我并没有想到家里的猫毛…

Apache Zeppelin学习记录2

Apache Zeppelin学习记录2 文章目录 Apache Zeppelin学习记录2前言一、基础调用二、带参数调用1.代码块要增加一行z.textbox("folder_path", "input")2.读取result 总结 前言 上一章讲了如何使用zeppelin来接入python&#xff0c;本节我们来看看如何使用R…

ArcGIS初始化软件界面Normal.mxt

ArcGIS有时候永久了&#xff0c;或者呢突然不自觉软件界面乱了&#xff0c;或者一些窗口打开却找不到&#xff01; 这时候可以去删除arcgis的界面配置文件&#xff0c;Normal.mxt 删除后再打开软件&#xff0c;软件界面就会回到初始化设置了&#xff01; 文件所在的路径&…

3d音响按键怎么建立模型---模大狮模型网

要建立3D音响按键的模型&#xff0c;您可以按照以下步骤进行&#xff1a; 选择建模软件&#xff1a;首先&#xff0c;选择一个三维建模软件&#xff0c;如Blender、3ds Max或Maya。这些软件都提供了丰富的建模工具和功能&#xff0c;适合用于创建复杂的三维模型。 参考图像&am…

IPv6自动隧道---ISATAP隧道

ISATAP隧道 ISATAP(Intra-Site Automatic Tunnel Addressing Protocol)是另外一种自动隧道技术。ISATAP隧道同样使用了内嵌IPv4地址的特殊IPv6地址形式,只是和6to4不同的是,6to4是使用IPv4地址做为网络前缀,而ISATAP用IPv4地址做为接口标识。 站点内自动隧道寻址协议(I…

Web Animation API

工作中经常会遇到需要动画的场景&#xff0c;连贯动画都是用CSS实现&#xff0c;&#xff0c;但是如果遇到需要用户互动介入的动画&#xff0c;那纯CSS很比较吃力&#xff0c;也不是不能实现&#xff0c;需要动态修改CSS变量&#xff0c;而且动画容易被JS代码阻塞&#xff0c;导…

VMP比较正确的编译教程

一、编译环境 1.1 编译整体配置 采用VS2022社区版MSVC2017_xpQT5.6.0WDK7.1&#xff08;编译DDK需要&#xff0c;不需要DDK的可以不用下载&#xff09; 1.1 VS2022安装 1.1.1 除常规勾选桌面C以外&#xff0c;需要勾选win xp支持和支持相应的MSVC版本。教程采用msvc2017和x…

​批量文件夹随机小写字母重命名:文件夹重命名简单步骤,高效结果

在日常工作中&#xff0c;经常要对大量的文件夹重命名进行管理和查找文件。手动重命名每个文件夹不仅耗时&#xff0c;而且容易出错。现在一起来看云炫文件管理器如何给文件夹名称批量随机小写字母重命名&#xff0c;简单的步骤&#xff0c;高效率的结果。 文件夹名称随机小写…

多文件转二维码的两种方式,有兴趣的了解一下

多个文件能一键生成二维码吗&#xff1f;二维码是现在很多人用来展示文件内容的一种手段&#xff0c;在制作二维码图片之后&#xff0c;其他人扫码就可以查看文件或者下载文件&#xff0c;有效的提升文件获取的效率。一般情况下&#xff0c;文件二维码分为多个文件生成一个二维…

黑群晖利用云服务器公网IP

一、服务器端 1.使用工具 xShell&#xff1a;连接云服务器使用。 云服务&#xff1a;阿里云&#xff0c;系统采用的是Ubuntu20.02&#xff0c;预装了宝塔界面&#xff0c;设置好root密码。 2.操作 远程登录阿里云&#xff0c;安装Vim、Wget等功能&#xff1b;下载和一键安装…