STM32-USART时序与寄存器状态分析

一、时序分析

在UART(通用异步收发传输)通信中,信号线上的状态分为两种:逻辑1(高电平)和逻辑0(低电平)。在空闲状态下,数据线应保持逻辑高电平。UART协议中的各个信号位具有如下含义:

1)起始位(Start Bit):
  • 起始位用于标识数据传输的开始。通过将通信线路从其空闲状态(逻辑高电平)拉低(逻辑低电平)来表示数据的开始。
2)数据位(Data Bits):
  • 数据位是实际传输的数据部分,其长度可以是5到8位。例如,ASCII码使用7位数据位,而扩展BCD码则使用8位。数据位的具体长度取决于通信设置。
3)校验位(Parity Bit):
  • 校验位用于检测数据传输中的错误。它可以是偶校验(确保1的位数为偶数)或奇校验(确保1的位数为奇数)。校验位的存在与否以及其具体设置取决于协议的要求。
4)停止位(Stop Bit):
  • 停止位用于标识数据传输的结束。它可以是1位、1.5位或2位的逻辑高电平。停止位的长度也可以根据通信协议进行调整。
     

二、寄存器状态分析

1)数据寄存器(DR,Data Register)

数据寄存器(DR)既用于发送数据也用于接收数据。尽管其功能在不同操作模式下有所不同,但实际上它是同一个物理寄存器:

  • 发送数据寄存器(TDR):在写操作时,数据被写入USART_DR寄存器,以便发送。
  • 接收数据寄存器(RDR):在读操作时,从USART_DR寄存器中读取接收到的数据。
2)状态寄存器(SR,Status Register)

状态寄存器(SR)提供UART模块的状态信息和标志位,反映UART的当前状态,如接收和发送状态、中断标志等。

  • 状态检查:通过读取SR寄存器中的标志位,监测UART的当前状态。
  • 错误处理:检查和处理各种错误标志(如溢出错误、噪声错误、帧错误)。
3)常见标志位:
  • TXE(发送数据寄存器空标志)
  • 标志位USART_FLAG_TXE (Transmit Data Register Empty Flag)
  • 功能:当TXE标志被置位时,表示发送数据寄存器中没有数据,准备好接收新的数据以便发送。此标志通常用于触发发送操作或检查发送缓冲区是否已经空闲。
  • TC(发送完成标志)
  • 标志位USART_FLAG_TC (Transmission Complete Flag)
  • 功能:当TC标志被置位时,表示所有数据字节已经完全传输,并且所有的发送缓冲区也已清空。此标志用于确认数据传输的最终完成状态。
  • RXNE(接收数据寄存器非空标志)
  • 标志位USART_IT_RXNE (Receive Data Register Not Empty Interrupt)
  • 功能:当接收数据寄存器中有数据可以读取时,该标志被置位。该标志用于触发接收中断,表示数据可供读取。数据从RDR移位寄存器转移到USART_DR寄存器时,该位被硬件置位。
  • IDLE(空闲标志)

  • 标志位USART_IT_IDLE (Idle Line Detected Interrupt)
  • 功能:当数据线保持空闲状态(没有数据传输)时,IDLE标志被置位。该标志用于检测数据传输的结束或空闲状态,并触发空闲行中断。
  • ORE(溢出错误标志):当接收数据寄存器溢出(接收到的数据未能及时读取)时,该标志被置位。该标志需要被清除以防止错误的发生。
  • NF(噪声错误标志):当接收的数据包含噪声错误时,该标志被置位。通常需要进行错误处理。
  • FE(帧错误标志):当接收到的数据帧格式错误(如停止位缺失)时,该标志被置位。需要进行错误处理。
  • PE(校验错误标志):当数据传输过程中发生校验错误时,该标志被置位。需要进行错误处理。

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

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

相关文章

使用frp内网穿透将个人主机上的MySQL发布到公网上,再通过python管理MySQL

目录 1.frp内网穿透部署 1.frp服务器 1.开放端口 2.上传软件包 3.解压 4.配置文件 2.frp客户端 1.上传软件包 2.配置文件 3.启动测试 1.浏览器查看服务器上连接的客户端数量 2.启动测试 2.MySQL安装 3.python3的安装使用 4.python管理MySQL 1.pip 2.pandas 3.p…

uniapp2【搬代码】

我们预期想要的效果: 步骤; 1.创建项目:填写项目名称 2.重新选择项目保存的目录 3.点击确定 4.将图标倒入static中 5.在pages中创建vue如图所示 6.vue创建成功后,在pages.json中进行配置tabBar "tabBar": {"color": "#999&q…

基于Jeecgboot3.6.3的vue3版本的流程中仿钉钉流程的鼠标拖动功能支持

因为这个项目license问题无法开源,更多技术支持与服务请加入我的知识星球。 1、因为原先仿钉钉流程里不能进行鼠标拖动来查看流程,所以根据作者提供的信息进行修改,在hooks下增加下面文件useDraggableScroll.ts import { ref, onMounted, on…

网络编程day1

一、思维导图 网络基础

泛微E-office 10 schema_mysql接口敏感信息泄露漏洞复现 [附POC]

文章目录 泛微E-office 10 schema_mysql接口敏感信息泄露漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现泛微E-office 10 schema_mysql接口敏感信息泄露漏洞复现 [附POC] 0x01 前言 免责声明:请勿利用文章内…

WPF自定义控件的应用(DynamicResource的使用方法)

1 DynamicResource的使用方法 可以在字典文件 的抬头区写入数&#xff1a; <SolidColorBrush x:Key"PrimaryBackgroundColor" Color"#FFABAdB3"/><SolidColorBrush x:Key"TextBox.MouseOver.Border" Color"#FF7EB4EA"/>&l…

服务器CPU天梯图2024年8月,含EYPC/至强及E3/E5

原文地址&#xff08;高清无水印原图/持续更新/含榜单出处链接&#xff09;&#xff1a; >>>服务器CPU天梯图<<< 本文提供的服务器CPU天梯图数据均采集自各大专业网站&#xff0c;榜单图片末尾会标准其来源&#xff08;挂太多链接有概率会被ban&#xff0c;…

datawind可视化查询-along表达式计算占比表达式

常见表达式 表计算表达式仅能作为指标应用along的维度必须存在于查询面板中&#xff0c;否则报错 例如计算埋点的占比 停止充电时长分箱 case when [个人].[停止充电时长(小时)] >12 then (12,13] when [个人].[停止充电时长(小时)] >11 then (11,12] when [个人].[停止…

ARM 汇编语言基础

目录 汇编指令代码框架 汇编指令语法格式 数据处理指令 数据搬移指令 mov 示例 立即数的本质 立即数的特点 立即数的使用 算术运算指令 指令格式 add 普通的加法指令 adc 带进位的加法指令 跳转指令 Load/Store指令 状态寄存器指令 基础概念 C 语言与汇编指令的关…

Acrel-1000DP分布式光伏监控系统在光伏并网系统的实际应用分析-安科瑞 蒋静

摘要&#xff1a;为实现“双碳目标”即中国明确提出的2030年“碳达峰”与2060年“碳中和”目标。推动节能减排、实现经济可持续发展&#xff0c;我国采取了一系列方案和行动。其中就包括能源绿色低碳转型行动&#xff1a;大力发展新能源&#xff0c;‌推动煤电节能降碳&#xf…

让对话AI帮助你做程序架构设计,以及解决你的疑问

我想问下对话AI,本文采取的是chatgpt免费版 我问&#xff1a; 你说程序的设计&#xff0c;前后端分离的BS架构。比如工人基础档案1000条记录&#xff0c;工程项目基础档案10条记录&#xff0c;其他相关这两个基础档案的具体功能&#xff0c;比如打卡记录&#xff0c;宿舍记录&…

Java-super关键字

目录 1.super关键字 基本介绍 基本语法 案例演示 2.super使用细节 细节1 细节2 细节3 super和this的比较 1.super关键字 基本介绍 super代表父类的引用&#xff0c;用于访问父类的属性&#xff0c;方法&#xff0c;构造器。 基本语法 不能用super去访问父类的pri…

多模态大模型intern-vl 1.5 论文解读:How Far Are We to GPT-4V?

论文&#xff1a;https://arxiv.org/pdf/2404.16821 目录 1 介绍 3.1 整体架构 3.2 强大的视觉编码器 InternViT-6B-448px-V1.2 InternViT-6B-448px-V1.5 3.3 动态高分辨率 动态宽高比匹配 图像分割与缩略图 InternVL 1.5&#xff0c;这是一款开源的多模态大语言模型&…

SQL Zoo 9-.Window functions

以下数据均来自SQL Zoo 1.Show the lastName, party and votes for the constituency S14000024 in 2017.&#xff08;显示2017年选区“S14000024”的姓氏、政党和选票&#xff09; SELECT lastName, party, votesFROM geWHERE constituency S14000024 AND yr 2017 ORDER BY…

Spring Boot - 通过ServletRequestHandledEvent事件实现接口请求的性能监控

文章目录 概述1. ServletRequestHandledEvent事件2. 实现步骤3. 优缺点分析4. 测试与验证小结其他方案1. 自定义拦截器2. 性能监控平台3. 使用Spring Boot Actuator4. APM工具 概述 在Spring框架中&#xff0c;监控接口请求的性能可以通过ServletRequestHandledEvent事件实现。…

c语言11天笔记

函数的概述 函数&#xff1a;实现一定功能的&#xff0c;独立的代码模块。我们的函数一定是先定义&#xff0c;后使用。 使用函数的优势&#xff1a; 1. 我们可以通过函数提供功能给别人使用。当然我们也可以使用别人提供的函数&#xff0c;减少代码量。 2. 借助函数可以减…

基于单片机的智能风扇设计

摘 要: 传统风扇无法根据周围环境的温度变化进行风速的调整&#xff0c;必须人为地干预才能达到需求 。 本文基于单片机的智能风扇主要解决以往风扇存在的问题&#xff0c;其有两种工作模式: 手动操作模式和自动运行模式&#xff0c;人们可以根据需要进行模式选择。 在自动运行…

Leetcode每日刷题之面试题01.01.判断字符是否唯一

在学习编程语言的过程中相信大部分同学刚开始接触的循环语句都是 for 循环&#xff0c;今天我将介绍一个比较简洁的循环语句&#xff0c;可以帮助我们减少些许的代码量&#xff0c;也更加快捷&#xff0c;那就是范围 for 在我之前的博文中也有所介绍 详情点击&#xff1a;面向对…

五段式S型算法笔记

设定已知&#xff1a;v0 vmax j&#xff1b; 减加速段&#xff1a;tm到tmax 加加速段&#xff1a;0到tm tm&#xff1a;中点时间 vm&#xff1a;中点速度 vmax&#xff1a;最大速度&#xff1b; j加速度的斜率 -j相反加速度的斜率 这个图首先说明&#xff…

C 语言文件操作详解

目录 引言 一、基本概念 1.什么是文件 2.文件的属性 3.为什么使用文件 4.二进制文件和文本文件 二、文件的打开和关闭 1.流和标准流 2.文件指针 3.文件的打开和关闭 三、⽂件的顺序读写 1.顺序读写函数 2.详细介绍 1.fgetc 2.fputc 3.fgets 4.fputs 5.fscan…