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(校验错误标志):**当数据传输过程中发生校验错误时,该标志被置位。需要进行错误处理。
相关推荐
xiaohai@Linux14 分钟前
STM32之移植原生的infoNES nes游戏模拟器源码实现游戏自由!!!(原生纯C版,非汇编版)
stm32·游戏·模拟器·infones·nes游戏机
无人装备硬件开发爱好者17 分钟前
初级菜鸟快速学习无人机电调教程:第2节
嵌入式硬件·无人机·电调开发
Wnq1007228 分钟前
当无人机 “飞” 入生活,安全隐患如何破解?
嵌入式硬件·物联网·网络安全·信息与通信·信号处理
无垠的广袤31 分钟前
【启明云端 WT9932S3-Nano 开发板】介绍、环境搭建、工程测试
python·单片机·嵌入式硬件
小李做物联网1 小时前
【单片机毕业设计】143.1基于单片机stm32塔吊控制反馈物联网嵌入式项目程序开发系统
stm32·单片机·嵌入式硬件·物联网
Jcenav11 小时前
OCXO外围电路设计指南
单片机·嵌入式硬件
Nautiluss11 小时前
一起玩XVF3800麦克风阵列(八)
大数据·人工智能·嵌入式硬件·github·音频·语音识别
神圣的大喵11 小时前
平台无关的嵌入式通用按键管理器
c语言·单片机·嵌入式硬件·嵌入式·按键库
三佛科技-1341638421211 小时前
FT8353系列(FT8353A/B/C/CD/DD/K/KD/PD)隔离型LED恒流驱动IC芯片 典型应用电路
单片机·物联网·智能家居·pcb工艺
无人装备硬件开发爱好者12 小时前
深度解析:STM32 MDK 工程 HEX 文件转 BIN 文件 —— 原理、方法、优缺点与实战指南(中)
stm32·嵌入式软件·hex2bin