Crazyflie 2.0学习周报18-7:STM32之USB串口通信(三):通用同步异步收发器(USART)

本文详细介绍了STM32的通用同步异步收发器(USART),包括USART的功能概述、特性描述、发送器和接收器的工作原理,如字符发送、接收、停止位配置等。同时,讲解了分数波特率的产生和校验控制,是学习STM32串口通信的重要参考资料。
摘要由CSDN通过智能技术生成

1. USART功能概述

接口通过三个引脚与其他设备连接在一起。任何USART双向通信至少需要两个脚:接
收数据输入(RX)和发送数据输出(TX)。
RX:接收数据串行输。通过过采样技术来区别数据和噪音,从而恢复数据。
TX:发送数据输出。当发送器被禁止时,输出引脚恢复到它的I/O端口配置。当发送器被激活,并且不发送数据时,TX引脚处于高电平。在单线和智能卡模式里,此I/O口被同时用于数据的发送和接收。
在这里插入图片描述

  • 总线在发送或接收前应处于空闲状态
  • 一个起始位
  • 一个数据字(8或9位),最低有效位在前
  • 0.5,1.5,2个的停止位,由此表明数据帧的结束
  • 使用分数波特率发生器 —— 12位整数和4位小数的表示方法。
  • 一个状态寄存器(USART_SR)
  • 数据寄存器(USART_DR)
  • 一个波特率寄存器(USART_BRR),12位的整数和4位小数
  • 一个智能卡模式下的保护时间寄存器(USART_GTPR)

2.USART 特性描述

字长可以通过编程USART_CR1寄存器中的M位,选择成8或9位(见图249)。在起始位期间,TX脚处于低电平,在停止位期间处于高电平。
空闲符号被视为完全由’1’组成的一个完整的数据帧,后面跟着包含了数据的下一帧的开始位(‘1’的位数也包括了停止位的位数)。
断开符号 被视为在一个帧周期内全部收到’0’(包括停止位期间,也是’0’)。在断开帧结束时,发送器再插入1或2个停止位(‘1’)来应答起始位。
发送和接收由一共用的波特率发生器驱动,当发送器和接收器的使能位分别置位时,分别为其产生时钟。
正常数据帧、空闲帧、断开帧的字长表示

3.发送器

3.1 字符发送

发送器根据M位的状态发送8位或9位的数据字。当发送使能位(TE)被设置时,发送移位寄存器中的数据在TX脚上输出,相应的时钟脉冲在CK脚上输出。
字符发送在USART发送期间,在TX引脚上首先移出数据的最低有效位。在此模式里,USART_DR寄存器包含了一个内部总线和发送移位寄存器之间的缓冲器。每个字符之前都有一个低电平的起始位;之后跟着的停止位,其数目可配置。USART支持多种停止位的配置:0.5、1、1.5和2个停止位。
注: 1.在数据传输期间不能复位TE位,否则将破坏TX脚上的数据,因为波特率计数器停止计数。正在传输的当前数据将丢失。
2. TE位被激活后将发送一个空闲帧。

3.2可配置的停止位

随每个字符发送的停止位的位数可以通过控制寄存器2的位13、12进行编程。

  1. 1个停止位:停止位位数的默认值。
  2. 2个停止位:可用于常规USART模式、单线模式以及调制解调器模式。
  3. 0.5个停止位:在智能卡模式下接收数据时使用。
  4. 1.5个停止位:在智能卡模式下发送和接收数据时使用。

空闲帧包括了停止位。
断开帧是10位低电平,后跟停止位(当m=0时);或者11位低电平,后跟停止位(m=1时)。不可能传输更长的断开帧(长度大于10或者11位)。
停止位的配置
配置步骤:

  1. 通过在USART_CR1寄存器上置位UE位来激活USART
  2. 编程USART_CR1的M位来定义字长。
  3. 在USART_CR2中编程停止位的位数。
  4. 如果采用多缓冲器通信,配置USART_CR3中的DMA使能位(DMAT)。按多缓冲器通信中的描述配置DMA寄存器。
  5. 利用USART_BRR寄存
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值