USART 通用 同步异步收发器,全双工数据交换,利用分数波特率发生器提供宽范围的波特率选择,支持同步单向通信和半双工单线通信,也支持LIN(局部互联网),智能卡协议和irDA(红外数据组织)SIR ENDEC规范,以及调制解调器(CTX/RTS)操作。它还允许多处理器通信 。 用多缓冲器配置的DMA方式,可以实现高速数据通信。
USART框图:
通过USART_CR1寄存器M位,选择成8位或9位。起始位期间,TX脚处于低电平,在停止位期间处于高电平。
空闲符号被视为完全由“1”组织的一个完整的数据帧,后面跟着包含了数据的下一帧的开始位。
断开符号被视为在一个帧周期内全部收到“0”(包括停止位期间也是0)。在断开帧结束时,发送器再插入1或2个停止位来应答起始位。
发送和接收由一共用的波特率发生器鸡翅。
位8:0
DR[8:0]:数据值
包含了发送或接收的数据。由于它是由两个寄存器组成的,一个
接收用(RDR),该寄存器兼具读和写的功能。TDR寄存器提供
器之间的并行接口(参见图1)。RDR寄存器提供了输入移位寄
接口。
当使能校验位(USART_CR1种PCE位被置位)进行发送时,写
度不同,MSB是第7位或者第8位)会被后来的校验位该取代。
当使能校验位进行接收时,读到的MSB位是接收到的校验位。
位31:16 保留位
位15:4 DIV_Mantissa[11:0]:DIV的小数部分
这12位定义了USART分频器除法因子(DIV)的小数部分
位3:0 DIV_Fraction[3:0]
这4位定义了USART分频器除法因子(DIV)的整数部分
数据发送过程:
(i)在USART_CR1 UE位使能(1);
(ii)编程USART_CR1的M位来定义字长;
(iii)在USART_CR2中定义STOP停止位;
如果采用多缓冲器通信,配置DMA使能;
(iv)设置USART_CR1的TE位,发送一个空闲帧作为第一次数据发送;
(v)利用USART_BRR寄存器选择要求的波特率;
(vi)把要发送的数据写进USART_DR寄存器(此动作清除TXE位)。
在只有一个缓冲器的情况下,对每个待发送的数据重复步骤7.
数据接收过程:
(i)在USART_CR1 UE位使能(1);
(ii)编程USART_CR1的M位来定义字长;
(iii)在USART_CR2中定义STOP停止位;
如果采用多缓冲器通信,配置DMA使能;
(iv)设置USART_CR1的RE位,激活接收器,使它开始寻找起始位;
RXNE位被置位,它表明移位寄存器的内容被转移到RDR。如果RXNEIE位被设置,产生中断。
在接收期间如果检测到帧错误,噪音或溢出错误,(USART_SR)错误标志将被置起。
USART功能图: