【【萌新的STM32学习25--- USART寄存器的介绍】】

萌新的STM32学习25- USART寄存器的介绍

STM32--USART寄存器介绍(F1)

控制寄存器1 (CR1)

位13: 使能USART UE

0: USART分频器和输出被禁止

1: USART模块使能

位12 : 配置8个数据位 M

该位定义了数据字的长度,由软件对其设置和清零

0: 一个起始位,8个数据位,n个停止位

1: 一个起始位,9个数据位,n个停止位

有效数据位一般来说都选用8个位

位10 : 禁止检验控制 PCE

0: 禁止校验控制

1: 使能校验控制

位5 :RXNEIE 使能接收缓冲区非空中断

0: 禁止产生中断

1: 当USART_SR 的ORE或者RXNE为 1 时, 产生USART 中断

位3 : TE 使能发送

0: 禁止发送

1:使能发送

位2 : 使能接收

0 : 禁止接收

1: 使能接收,并开始搜寻RX引脚上的起始位

UE 为串口使能位,通过该位置 1,使能串口。

M 为字长,当该位为 0 的时候设置串口为 8 个字长外加 n个停止位,停止位的个数(n)是根据 USART_CR2 的[13:12]位设置来决定的,默认为 0。

PCE

为校验使能位,设置为 0,即禁止校验,否则使能校验。

PS 为校验位选择,设置为 0 为偶校验,

否则奇校验。TXIE 为发送缓冲区空中断使能位,设置该位为 1,当 USART_SR 中的 TXE 位为

1 时,将产生串口中断。TCIE 为发送完成中断使能位,设置该位为 1,当 USART_SR 中的 TC

位为 1 时,将产生串口中断。RXNEIE 为接收缓冲区非空中断使能,设置该位为 1,当 USART_SR

中的 ORE 或者 RXNE 位为 1 时,将产生串口中断。TE 为发送使能位,设置为 1,将开启串口

的发送功能。RE 为接收使能位,用法同 TE。、

对于另外一个控制寄存器2 CR2

我们只用到 了 位13 12

位13:12

就是STOP停止位

用这两位来设置停止位的位数

00 : 1个停止位

01 : 0.5个停止位

10 : 2个停止位

11 : 1.5个停止位

这个该寄存器需要完成的配置是: 配置1个停止位

注: UART4 和UART5 不能用0.5停止位和1.5停止位

控制寄存器CR3

我们只使用它的位3

我们对HDSEL的配置选择 半双工选择

0 : 不选择半双工模式

1 : 选择半双工模式

这里有9个位

我们听从上面CR1的安排 如果CR1指示为8 那我们只是用[7;0]

状态寄存器SR

位5: RXNE(读数据寄存器非空)

当该位被置 1 的时候,就是提示已经有数据被接收到了,并且可以读出来了。这时候我们要做的就是尽快去读取 USART_DR,通过读 USART_DR 可以将该位清零,也可以向该位写 0,直接清除。

用通俗的话来说就是当这个位是1的时候表明读数据寄存器非空 就是有东西在DR上面 我们可以把它赶紧读出来

0: 数据没有收到

1: 收到数据,可以读出

位6:TC(发送完成)

当该位被置位的时候,表示 USART_DR 内的数据已经被发送完成了。如果设置了这个位的中断,则会产生中断。该位也有两种清零方式:

1)读 USART_SR,写 USART_DR。

2)直接向该位写 0

0 : 发送还未完成

1 : 发送完成

根据TC位我们可以知道能否发数据

根据RXNE位我们知道是否收到数据

相关推荐
锦亦之22332 分钟前
cesium入门学习二
学习·html
m0_7482561437 分钟前
前端 MYTED单篇TED词汇学习功能优化
前端·学习
IT古董1 小时前
【机器学习】机器学习的基本分类-半监督学习(Semi-supervised Learning)
学习·机器学习·分类·半监督学习
jbjhzstsl1 小时前
lv_ffmpeg学习及播放rtsp
学习·ffmpeg
青い月の魔女1 小时前
数据结构初阶---二叉树
c语言·数据结构·笔记·学习·算法
网络安全(king)1 小时前
网络安全攻防学习平台 - 基础关
网络·学习·web安全
最后一个bug2 小时前
STM32MP1linux根文件系统目录作用
linux·c语言·arm开发·单片机·嵌入式硬件
虾球xz2 小时前
游戏引擎学习第59天
学习·游戏引擎
wenchm2 小时前
细说STM32F407单片机IIC总线基础知识
stm32·单片机·嵌入式硬件
枫零NET3 小时前
学习思考:一日三问(学习篇)之匹配VLAN
网络·学习·交换机