1.USART简介
USART是同步收发器,UART是异步收发器(主要)。
停止位长度:可参考串口时序的终止端与起始端的长度。
同步模式:就是有CLK模式。
智能卡(刷卡),IrDA(红外发光管+红外接收管),LIN(局域网通信协议)等同步模式一般不使用.。
2.USART框图(下一个图是该图的简略版):
注:左上角实际需要学习的只有TX和RX引脚。阴影框框为发送数据寄存器和接收数据寄存器。是一个寄存器DR,硬件设计时为发送TDR(只写),接收RDR(只读)。
发送数据寄存器TDR通过观察发送移位寄存器里面没有数据时(TXE置1),将发送数据寄存器TDR给发送移位寄存器。此时TXE=1,但是还没发送,在发送器控制下,一位一位进行移位(低位先行)。同理,接收移位寄存器将数据传递给接受数据寄存器时,也会有一个RXNE,RXNE=1时,即读取数据。
硬件数据流控:防止数据发送太快,导致数据丢失。nRTS是请求发送,是输出脚。nCTS是清除发送,是输入脚,是接收其他的nRTS引脚。
USART中断控制:两个位必不可少,为TXE,RXNE
波特率发生率:可等价于分频器。APB进行分频,得到发送和接收移位的时钟。
2.USART基本结构(该图是上个图的减缩版本):
波特率发生器:用于产生约定的通信速率。始终来源是PCLK2/1。
>>发送移位寄存器>>的>>是右移标志,低位先行。
写入DR时,数据为写入数据寄存器。读取DR时,数据为接收移位寄存器。
3.数据帧:
字长:数字长度。包含校验位。
空闲帧:从头到尾都为1。 断开帧:从头到尾都为0。 空闲帧,断开帧是局域网协议里使用。
优先选择9位字节有校验;8位字节无校验。此时每个数据帧正好传输一个字节。
4.起始位侦测:
起始位侦测是对噪声的处理。
16位的侦测位。且如图侦测位中,如果3,5,7,有至少有2个0 或8,9,10至少有两个0,则可以使用该信号(有两个0时,可以使用,但是NE位置1,提示有噪声)。
5.数据采样:
没有噪声时,数据采样的8,9,10都为1.如果有噪声干扰,则8,9,10采样的数据按2:1。(2次1,1次0则为1)此时噪声标志位NE置1.
6.波特率发生器:
波特率发生器就是分频器。
DIV分为整数部分和小数部分。此处的/16是在数据采样时16位只采样1位(1或0)对应,即16位对1位。
波特率计算。例:USART=9600,
9600=72M/(16*DIV)=72 000 000/(16*DIV)
解得DIV=468.75,转换为2进制为111010100.11(整数部分,小数部分补零不再赘述)
注:波特率计算STM32的库函数会自动计算。
J2为USB端口,USB四根线分别为GND,D+,D-,VCC(5V),所以需要CH340转换。转换后输出为TXD,RXD(串口协议)。通过J1排针引出。
如左上图,VCC+5V的电,通过稳压管稳压后进行降压,变为3.3V。此时排针J1有3.3V和+5V。此时,跳线帽在4~5脚或者在5~6V。选择供电和通信协议。
PWR是电源指示灯,
数据传输时,TXD,RXD会闪烁。
参考手册可看25章.同步异步收发器