ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

【stm32】串口——在MCU内部的工作过程

【stm32】串口——在MCU内部的工作过程 目录USART的简图和简单理解不考虑帧格式的收发过程考虑帧格式详细过程接收过程USART的简图和简单理解CPU是怎么控制USART的——控制USART内部的寄存器在参考手册内部有USART内部的图但是过于复杂先看简化的图搞懂基本原理。不考虑帧格式的收发过程考虑帧格式先看看寄存器这个数据寄存器有两个一个是TDR一个是RDR那他们为什么指向同一块物理地址官方并没有披露推测是在控制地址总线的时候他的读写方向不一致就把读写两个不同的方向看成两个不同的寄存器了。详细过程主要过程CPU把数据通过数据总线发送到USART内部通过发送数据寄存器(TDR)暂存。TDR并行数据移动到发送移位寄存器USART自己做的在RCC的驱使下逐位串行移动到接收方。万一发送移位寄存器在发送的时候又在TDR写入数据了怎么办因此就有了状态寄存器TXETransmit Data Register EmptyTDR空了可以写下一个数据了。TCTransmission Complete整帧发完了包括移位寄存器也空了。要等TXE决定了能不能把数据是否为空TC决定了数据是否发完。阶段TXETC用户能做什么刚写入TDR00等待搬到移位寄存器10可以写下一个正在发送10可以写下一个整帧发完11可以关USART/切模式接收过程他也有一个寄存器进行辅助。RXNERead data register Not Empty接收数据寄存器非空。RXNE1 表示 RDR 里有数据了用户可以读了。阶段RXNE说明正在接收0RDR空还没数据收满一帧1RDR有数据了可以读用户读RDR0数据被取走RXNE清零
返回列表