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

news2024/9/23 17:16:00

一、时序分析

在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.coloradmin.cn/o/1996642.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

拥抱变革:旗晟智能巡检机器人系统重塑高风险行业巡检模式

随着工业自动化的快速发展,特别是在石油、化工、煤矿等高风险行业中,传统的巡检方式已难以满足现代企业的需求。高频次、全天候、重复的人工巡检不仅效率低下,还面临着人身安全、数据准确性和运营成本等多方面的挑战。针对这些问题&#xff0…

大模型算力基础设施技术趋势、关键挑战与发展路径

文章目录 前言一、大模型技术发展趋势1.1 大语言模型1.2 多模态模型1.3 长序列模型1.4 混合专家模型二、大模型算力基础设施发展问题与挑战2.1 可用算力规模亟需算力利用效率提升2.2 集群性能提升依赖跨尺度、多层次互联三、大模型算力基础设施高质量发展路径总结前言 从大模型…

SpringCloud与SpringBoot之间的关系解析

Spring Cloud和Spring Boot是两个独立的项目,分别用于构建微服务架构和快速构建Java应用程序。它们之间有着密切的关系,可以相互配合使用。 Spring Boot简介 Spring Boot是一个用于快速构建Java应用程序的框架。它简化了Spring应用程序的开发过程&#x…

Redis,MongoDB,Memcached未授权访问漏洞(及其修复方法)

一. Redis Redis 默认情况下,会绑定在 0.0.0.0:6379 ,如果没有进⾏采⽤相关的策略,⽐如添加防 ⽕墙规则避免其他⾮信任来源 ip 访问等,这样将会将 Redis 服务暴露到公⽹上,如果在没有设 置密码认证(⼀般为空…

【haproxy】haproxy基本配置信息

一、负载均衡 LB: LoadBalancing(负载均衡)由多个主机组成,每个主机只承担一部分访问 负载均衡:Load Balance,简称LB,是一种服务或基于硬件设备等实现的高可用反向代理技术,负载均衡将特定的业务(web服务、…

新书速览|Python数据可视化:科技图表绘制(送书)

《Python数据可视化:科技图表绘制》 本书内容 《Python数据可视化:科技图表绘制》结合编者多年的数据分析与科研绘图经验,详细讲解Python语言及包括Matplotlib在内的多种可视化包在数据分析与科研图表制作中的使用方法与技巧。《Python数据可视化:科技图表绘制》分为…

WWDg 正点原子版

窗口看门狗 超时时间计算如下 f1系列,wwdg的时钟源频率是36mhz,时钟频率➗(4096*分频系数)就是得到实际的频率,也就是一秒钟能计数好多次,那么频率的倒数也就是计数一次需要的时间,所以频率的倒…

【Linux】阻塞信号|信号原理

常见的信号术语 信号递达(Delivery): 信号实际被执行处理的过程;(当一个信号被递达给进程时,该信号的处理动作已经开始执行实际执行信号的处理动作); 信号未决(Pending): 信号从产生…

快速上手Spring Boot

快速上手Spring Boot (qq.com)

凡图公益行:以爱之名,凡图家庭教育专家入户指导,引领残疾儿童勇敢启航 !

凡图公益行:以爱之名,凡图家庭教育专家入户指导,引领残疾儿童勇敢启航 ! 在社会的各个角落,有一群特殊的孩子。 他们因身体的局限承受着常人难以想象的挑战。 这些挑战不仅体现在日常生活的琐碎之中,更深…

react使用Lodash 库实现根据数组内对象的某属性排序

一、描述 根据数组内的对象的某个属性进行排序操作是很常见的方法,但是如果自己写一个方法,有可能出现错误的情况,且耗费时间,这里介绍一个第三方的工具“Lodash ”库,用这个来实现根据数组内对象的某属性排序特别方法…

LVS原理详解及部署

目录 一、LVS原理 1.LVS简介 2.LVS结构 3.IP负载均衡技术 4.LVS相关术语 二、LVS负载均衡四种工作模式 1.LVS-DR模式 2.LVS-NAT模式 3.LVS-TUN模式(了解) 4.FULL-NAT模式(了解) 三、LVS负载均衡十种调度算法 四、LVS部…

Open3D 使用Jet颜色映射渲染点云

目录 一、概述 1.1Jet颜色映射的定义 1.2Jet颜色映射的应用 二、代码实现 2.1关键函数 2.2完整代码 三、实现效果 3.1原始点云 3.2渲染后点云 Open3D点云算法汇总及实战案例汇总的目录地址: Open3D点云算法与点云深度学习案例汇总(长期更新&am…

书生大模型实战营闯关记录----第六关:大语言模型微调实战,LoRA和QLoRA微调,理论+Xtuner微调实操

文章目录 大语言模型微调基础1 基本概念1.1 Finetune简介1.1.1 Finetune的两种范式 1.2 微调技术1.2.1 LoRA简介1.2.2 QLoRA简介 1 微调前置基础2 准备工作2.2 创建虚拟环境2.3 安装 XTuner2.4 模型准备 3 快速开始3.1 微调前的模型对话3.2 指令跟随微调3.2.1 准数据文件3.2.2 …

ELK架构介绍

一、ELK简介 ELK 是由三个开源软件组成的,分别是:Elasticsearch、Logstash和Kibana,这三个软件各自在日志管理和数据分析领域发挥着重要作用。Elasticsearch提供分布式存储和搜索能力;Logstash负责数据收集和处理,而K…

如何简单粗暴的下载m3u8视频并转换为mp4格式

m3u8文件介绍 M3U(Moving Picture Experts Group Audio Layer 3 Uniform Resource Locator)这种文件格式是音视频文件的列表文件,是纯文本文件。你下载下来打开它,播放软件并不是播放它,而是根据它的记录找到网络地址…

react+taro的文字粘贴识别功能

效果图 <View className"components-page"><Textareastyle"font-size:12PX"className"textareaStyle"placeholderClass"placeholderStyle"placeholder"例&#xff1a;公司&#xff1a;xxxx公司, 电话:13*********, 地址…

MybatisPlus——service批量新增

Service接口 批量新增 批量插入10万条用户数据&#xff0c;并作出对比&#xff1a; 普通for循环插入IService的批量插入 Test void testSaveOneByOne() {long b System.currentTimeMillis();for (int i 1; i < 100000; i) {userService.save(buildUser(i));}long e Sy…

leetcode递归(LCR 024. 反转链表)

前言 经过前期的基础训练以及部分实战练习&#xff0c;粗略掌握了各种题型的解题思路。现阶段开始专项练习。 描述 给定单链表的头节点 head &#xff0c;请反转链表&#xff0c;并返回反转后的链表的头节点。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&am…

2024年6月scratch图形化编程等级考试四级真题

202406 青少年软件编程等级考试Scratch四级真题 试卷总分数&#xff1a;100分 考试时长&#xff1a;60 分钟 第 1 题 运行下列程序&#xff0c;输入单词“PLAY”&#xff0c;最后角色说&#xff1f;&#xff08; &#xff09; A&#xff1a;LY4AP B&#xff1a;AP4LY C&am…