STM32的通用同步异步收发器USART模块

通用同步异步收发器(USART)提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换

USART利用分数波特率发生器提供宽范围的波特率选择,它支持同步单向通信和半双工单线通信,还允许多处理器通信

USART的主要特性如下:

  • 全双工的,异步通信
  • NRZ标准格式
  • 分数波特率发生器系统(发送和接收共用的可编程波特率,最高达4.5Mbits/s)
  • 可编程数据字长度(8位或9位)
  • 可配置的停止位-支持1或2个停止位
  • 发送方为同步传输提供时钟
  • 单独的发送器和接收器使能位
  • 检测标志(接收缓冲器满,发送缓冲器空,传输结束标志)
  • 校验控制(发送校验位,对接收数据进行校验)

接口通过三个引脚与其他设备连接在一起

  • RX:接收数据串行输。通过过采样技术来区别数据和噪音,从而恢复数据
  • TX:发送数据输出。当发送器被禁止时,输出引脚恢复到它的I/O端口配置。当发送器被激活, 并且不发送数据时,TX引脚处于高电平

寄存器方面:

  • 一个状态寄存器(USART_SR)
  • 数据寄存器(USART_DR)
  • 一个波特率寄存器(USART_BRR),12位的整数和4位小数
  • 一个智能卡模式下的保护时间寄存器(USART_GTPR)

字长可以通过编程USART_CR1寄存器中的M位,选择成为8或9位。在起始位期间,TX

脚处于低电平,在停止位期间处于高电平。

空闲符号被视为完全由’1’组成的一个完整的数据帧,后面跟着包含了数据的下一帧的开始位(‘1’

的位数也包括了停止位的位数)。

断开符号 被视为在一个帧周期内全部收到’0’(包括停止位期间,也是’0’)。在断开帧结束时,发

送器再插入1或2个停止位(‘1’)来应答起始位。

发送和接收由一共用的波特率发生器驱动,当发送器和接收器的使能位分别置位时,分别为其 产生时钟。

在USART发送期间,在TX引脚上首先移出数据的最低有效位。在此模式里,USART_DR寄存器包含了一个内部总线和发送移位寄存器之间的缓冲器。每个字符之前都有一个低电平的起始位;之后跟着的停止位,其数目可配置

在USART接收期间,数据的最低有效位首先从RX脚移进。在此模式里,USART_DR寄存器包 含的缓冲器位于内部总线和接收移位寄存器之间

分数波特率的产生

接收器和发送器的波特率在USARTDIV的整数和小数寄存器中的值应设置成相同

 USARTDIV是一个无符号的定点数。这12位的值设置在USART_BRR寄存器

注意:在写入USART_BRR之后,波特率计数器会被波特率寄存器的新值替换。因此,不要在通信进行中改变波特率寄存器的数值

USART的寄存器

可以用半字(16位)或字(32位)的方式操作这些外设寄存器

  • 状态寄存器(USART_SR)

  • 数据寄存器(USART_DR)

 

  • 波特比率寄存器(USART_BRR)

 

  •  控制寄存器 1(USART_CR1)

 

  • 控制寄存器 2(USART_CR2)

 

  • 控制寄存器 3(USART_CR3) 

 

 

  • 保护时间和预分频寄存器(USART_GTPR)

 

 

猜你喜欢

转载自blog.csdn.net/qq_24118527/article/details/120255171
今日推荐