STM32之USART的基本知识点

USART又称为通用同步异步收发器,是利用分数比特率发生器提供宽范围的比特率选择。STM32F10x系列的芯片都提供了功能比较强大的USART串口,基本上的串口功能都可以通过硬件来实现。

USART具有以下比较典型的特征:

1.全双工异步通信;

2.单线半双工通信;

3.发送方为同步传输提供时钟;

4.可配置的使用DMA的多缓冲器通信—在SRAM中利用集中式DMA缓冲接受/发送;

5.单独的接收器和发送器使能端;

6.检测标志,接受缓冲器满,发送缓冲器空,传输结束标志;

7.4个错误检测标志:溢出错误,噪音错误,帧错误,检验错误;

8.10带标志的中断源等。

任何USART双向通信都至少需要两个脚:接受数据输入(RX)和发送数据输出(TX)。

在异步模式下,总线在发送和接受前应该处于空闲状态。

在同步模式下需要用到SCLK引脚:发送器时钟输出。此引脚输出用于同步传输的时钟(在START和STOP位上没有时钟,软件可选,可以在最后一个数据位送出一个时钟脉冲)。时钟相位和极性都是软件可编程的。

发送器中,发送器会根据M位的状态发送8位或9位的数据字。当发送使能位(TE)被设置时,使能USART同步串口,这时发送移位肌寄存器中的数据在TX引脚上输出,相应的时钟脉冲在SCLK引脚输出。字符发送在TX引脚上首先移除数据的最低有效位,每个字符之间都有一个低电平的起始位,之后是停止位,其数目是可配置的。

Tips:在数据传输期间不能复位TE位,否则将破坏TX引脚上的数据,因为比特率计数器停止计数,正在传输的当前数据将会丢失,TE位被激活后将发送一个空闲位。

在单字节通信过程中,先读USART_SR寄存器,再写USART_DR寄存器,可以完成对TC位的清0.同时TC位也可以通过对TC位软件写0来清除,此清0方式只在多缓冲器通信模式下推荐实用。

设置SBK可以发送一个断开符号。断开帧长度取决于M位,如果设置SBK=1,在完成当前数据发送后,将在TX线上发送一个断开符号。断开复发发送完成时(在断开符号的停止位时),SBK被硬件复位。USART在最后一个断开帧的结束处插入逻辑1,保证能识别下一帧的起始位。

Tips:如果在开始发送断开帧之前软件又复位了SBK位,断开符号将不被发送。如果要发送两个联系的断开帧,SBK位应该在前一个断开符号的停止位之后置起。

 

你可能感兴趣的:(STM32基本知识点)