江协科技stm32————9-2USART串口外设

目录

USART简介

USART框图

数据寄存器

流控(了解) 

同步时钟信号

唤醒单元

中断控制

波特率发生器

引脚图

USART基本结构图 

数据帧 

起始位侦测

数据采样

波特率发生器


USART简介

USART大体可分为发送和接收两部分

发送:根据数据寄存器的一个字节数据自动生成数据帧时序,从TX引脚发送出去

接收: 接收RX引脚的数据帧时序,拼接为一个字节数据,存放在数据寄存器里

常用串口参数

波特率:9600/115200

数据位8位   停止位1位  无校验

同步模式就是多了个clk时钟

硬件流控制:通过低电平表示接收方准备完成,防止在传输时因为传输速度过快导致数据被抛弃或覆盖

USART框图

数据寄存器

TDR:只写(写入0x55二进制为0101 0101)转移到 发送移位寄存器后,标志位TXE置1,可以继续写入新的数据。

移位寄存器:在发送器控制的情况下,向右移位,低位先行,传入TX,移位完成后立刻转移新的数据

移位寄存器:数据从RX引脚通向接收移位寄存器,在接收器控制的驱动下,一位一位的读取RX电平,先放在最高位,然后向右移,移动8位(一个字节)后,整体转移到RDR中,标志位RXNE置1,读取数据

RDR:只读 

流控(了解) 

硬件数据流控: 能接收数据时,RTS给低电平,连接到外部设备的CTS,设备通过TX向RX传输数据,反正高电平,停止传输

nRTS:请求发送(低电平有效),输出脚

nCTS:请求接收(低电平有效),输入脚

同步时钟信号

发送寄存器每移位一次, 同步时钟信号跳变一个周期

用途

1、兼容其他协议,串口加上时钟后,类似SPI协议

2、自适应波特率

唤醒单元

作用:实现串口挂载多设备,发送特定地址唤醒设备工作

中断控制

两个重要的状态寄存器标志位

TXE发送寄存器空,RXNE接收寄存器非空

波特率发生器

作用类似分频器,APB进行分频,得到发送和接收移位的时钟

USART1挂载在APB2,PCLK2的时钟,一般是72M

其他USART挂载在APB1,PCLK1的时钟,一般是36M

引脚图

USART基本结构图 

波特率发生器用于产生约定的通信速率,时钟来源是PLCLK2/1,经过波特率发生器分频后,发送给发送和接收控制器,用来控制发送移位和接收移位,经过发送和移位寄存器的配合将数据一位一位的传送,通过GPIO的复用输出输出到TX引脚,产生串口协议规定的波形,当数据由数据寄存器转移到移位寄存器时,标志位TXE置1,RX波形通过GPIO输入,一位一位的移入接收移位寄存器,当数据由接收移位寄存器转移到接收数据寄存器时,标志位RXNE置1,标志位可以申请中断

数据帧 

9位字长可以在最后一位设置奇偶校验或者无校验

时钟的极性、相位可以通过配置寄存器决定,LBCL位控制最后一个数据的时钟脉冲 

STM32可配置的停止位长度为:0.5 1 1.5 2(与数据位长度之比) ,一般为1

起始位侦测

一开始的空闲状态高电平采样为1,直到采样到0,所以1-0中产生了下降沿,检测到起始位,从起始位开始进行连续16次采样,应该是都为0,为了防止噪声带来的干扰会在第3、5、7、8、9、10次再进行采样,要求每3位里至少有2个0,标志位NE代表有噪声

数据采样

在第8、9、10次进行连续采样,理想情况下应该全为1、0,少数服从多数决定数据高低电平的判定 

波特率发生器

例:配置USART1为9600的波特率

9600 = 72M / 16 / DIV

DIV = 468.75

转换为二进制为111010100.11

整数12位,前面补0,小数4位,后面补0 

  • 12
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值