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

[复制链接]
发表于 2026-2-10 20:34:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
一、时序分析


在UART(通用异步收发传输)通讯中,TX引脚通常设置为复用推挽输出模式以发送数据,RX引脚设置为浮空输入模式以吸收数据。 信号线上的状态分为两种:逻辑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(校验错误标记):当数据传输过程中发生校验错误时,该标记被置位。须要举行错误处理处罚。




回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表