当前位置: 首页 > news >正文

STM32 USART框图简介

USART框图

TX RX引脚

TX:发送引脚

RX:接收引脚

SW_RX,IRDA_OUT,IRDA_IN:

智能卡和IrDA通信的引脚

发送移位寄存器和接收移位寄存器

发送移位寄存器:把一个字节的数据一位一位地从“发送数据寄存器” 加载到 “发送移位寄存器” 中。

接收移位寄存器:通过RX引脚,从外部设备一位一位地接收串行数据。

当接收完一个完整的数据帧(例如,8个数据位)后,接收移位寄存器中组装好的整个字节数据会被一次性并行地转移到“接收数据寄存器” 中,以便CPU或DMA来读取。

发送数据寄存器(TDR)和接收数据寄存器(RDR)

发送数据寄存器TDR:

当需要发送数据时,CPU或DMA将数据写入发送数据寄存器。一旦发送移位寄存器​ 空闲(即前一个数据已发送完毕),TDR中的内容会自动、并行地加载到发送移位寄存器​ 中。

接收数据寄存器RDR:

接收移位寄存器​ 从RX引脚完整地接收完一个字节的串行数据后,会将这个并行数据自动转移到接收数据寄存器​ 中。

TDR和RDR占用一个地址,在程序上只表现为一个寄存器(数据寄存器DR),但实际硬件中是分成了两个寄存器:一个用于发送TDR(只写),一个用于接收RDR(只读)。

当进行写操作时 数据写入到TDR,当进行读操作时,数据从RDR读出来

这TDR和RDR两个寄存器如何操作

发送端

当我们在某个时刻给TDR写入了0X55这个数据,在寄存器里面就是二进制存储0101 0101。

此时硬件检测到你写入数据了,那么它就会检查发送移位寄存器里面是不是有数据正在移位。

如果当前发送数据寄存器没有移位数据,那么这个0101 0101就会移动到发送移位寄存器。

当数据从发送数据寄存器(TDR)移动到发送移位寄存器时,就会置一个 TXE标志位。

当我们检查这个标志位TXE,如果置1了,那么就表示发送数据寄存器(TDR)为空,此时我们就可以在TDR写入下一个数据了。

注意:当TXE标志位置1(发送数据寄存器(TDR)为空)时,此时数据其实还没有发送出去(因为此时数据还在发送移位寄存器中)。

数据传入发送移位寄存器时,发送移位寄存器就会在发生器控制的驱动下,向右移位,然后一位一位地将数据输出到TX引脚。

当数据移位完成之后,新的数据就会再次自动地从TDR转移到发送数据寄存器里面来。

如果当前移位寄存器还没有完成,TDR的数据就会进行等待,一旦移位完成,就会立刻转移过来。有了TDR和移位寄存器的双重缓存,可以保证连续发送数据的时候,数据帧之间不会有空闲,提高了工作效率

简单地说,就是你数据一旦从TDR转移到移位寄存器了,管你有没有移位完成,我就立刻把下一个数据放在TDR等着,一旦移完了,新的数据就会立刻跟上。

接收端

数据从RX引脚通向接收移位寄存器(RDR),在接收器控制的驱动下,

一位位地读取RX电平,先放在最高位,然后往移,移位8次之后,就能接收一个字节了。

同样,因为串口协议规定是低位先行,所以接收移位寄存器是从高位往低位这样方向移动的。之后,当一个字节移位完成之后,这一个字节的数据就会整体地,一下子转移到接收数据寄存器RDR里来。在转移的过程中,也会置一个标志位,叫RXNE

当我们检测到RXNE置1后(​​RDR寄存器(接收数据寄存器)是“”的。即里面有新到的,CPU还没读取的数据,此时就可以把数据读走了。当数据从移位寄存器转移到RDR时,只要CPU或DMA及时读走RDR中的数据,接收移位寄存器就可以直接移位接收下一次的数据了。

这是我的部分见解,有什么问题欢迎指正,大家共同进步!

http://www.dtcms.com/a/512972.html

相关文章:

  • UVa 11020 Efficient Solutions
  • [go 面试] 接口测试的方法与技巧
  • 公司做网站价格新媒体运营师证书
  • Python爬虫第8课:代理池与反反爬虫技术
  • 做网站有视频教吗营销推广型网站价格
  • 济南网站建设优化公司域名备案网站购买
  • 关于 DeepSeek-OCR 的猜想
  • Rademacher复杂度:衡量机器学习模型复杂度的利器
  • 西矿文旅:以自然之道开启研学新篇,为文旅产业注入“芯”动力
  • 攻防世界—easyupload
  • 合肥网站公司企业营销策划方案
  • 地方网站发展方向抖音代运营 深圳
  • 怎么做网站推广和宣传济南网站建设首选传承网络
  • 项目开发手册-项目结构
  • 数据库原理实验报告:数据库查询操作实现
  • 学习网站开发流程wordpress采集附件
  • 网站开发招标参数三亚市建设局网站公示
  • 网站后台iis配置立陶宛与俄罗斯最新消息
  • 【AI】AI评测入门(五):Evaluation 跑起来
  • GSFE层错能计算(DFT)
  • 数据结构——二十八、图的基本操作(王道408)
  • 百度分公司 网站外包中文在线っと好きだった最新版
  • 【Python OOP Diary 1.1】题目二:简单计算器,改错与优化
  • 如何用记事本做网站php网站开发工程师
  • 企业网站群建设的原因网站优化检查
  • 【JVM】详解 Class类文件的结构
  • 珠海市住房和建设局网站微网站开发 php
  • 欧美做爰视频网站工业品一站式采购平台
  • 中位数贪心|
  • 红海eHR全面智能化升级,重塑全角色智慧体验