初学stm32,初次接触USART串口通信。
对USART通信硬件原理的个人总结。从MCU(Micro Controller Unit,也就是ST芯片)出来的TTL电平经过电平转换芯片转化为USB电平,从而实现与PC的通信。
USART(Universal Synchronous/Asynchronous Receiver/Transmitter)通用同步/异步串行接收/发送器。
这边只作异步通信说,异步通信与同步通信的主要区别区别是时钟,所以这边的SLCK是关闭的。USART总共有TX、RX、nRTS、nCTS、SCLK这5个外接引脚(框图中的SW_RX在内部,n表示低电平有效)。在学习与PC上位机通信时,是关闭硬件流控制模式的,所以异步通信只涉及到TX(Transmit)和RX(Receive)这两个引脚。
大致思路:数据由软件传给发送数据寄存器USART_DR(TRD),判断TC(Transmit complete,发送完成)是否置1。若置1,表示发送移位寄存器发送完成,发送数据寄存器中的数据发送到发送移位寄存器开始发送,判断TXE(Transmit data register empty,发送数据寄存器为空),读取下一个数据到TDR;若TC为0,则等待。TC置0由软件序列(读取USART_SR寄存器,然后写入USART_DR寄存器),也可以向该位