STM32F10x中的串口寄存器

发布者:as233632621最新更新时间:2020-09-23 来源: eefocus关键字:STM32F10x  串口寄存器 手机看文章 扫描二维码
随时随地手机看文章

USART 通用同步异步收发器(Universal Synchronous Asynchronous Receiver Transmitter)。


APB2ENR 高级外设总线(Andvaced Peripheral Bus)使能(Enable)寄存器;外设的对应位使能(置1)后,该外设才可以使用。


APB2RSTR 高级外设总线(Andvaced Peripheral Bus)复位(Reset)寄存器;当外设出现异常的时候可以通过复位寄存器里面的对应位设置,实现该外设的复位,然后重新配置这个外设达到让其重新工作的目的。一般在系统刚开始配置外设的时候,都会先执行复位该外设的操作。


USART_SR 串口状态(State)寄存器;
CTS:如果设置了CTSE位,当nCTS输入变化状态时,该位被硬件置高。由软件将其清零。如果USART_CR3中的CTSIE为’1’,则产生中断。


LBD:LIN断开检测(LIN Break Detect)当探测到LIN断开时,该位由硬件置’1’,由软件清’0’(向该位写0)。如果USART_CR3中的LBDIE = 1,则产生中断。
TXE:发送数据寄存器空(Transmit Empty)当TDR寄存器中的数据被硬件转移到移位寄存器的时候,该位被硬件置位。如果USART_CR1寄存器中的TXEIE为1,则产生中断。对USART_DR的写操作,将该位清零。
TC:发送完成(Transmit Complete),当该位被置位的时候,表示USART_DR内的数据已经被发送完成了。如果设置了这个位的中断,则会产生中断。该位也有两种清零方式:1)读USART_SR,写USART_DR。2)直接向该位写0。
RXNE:接收据寄存器非空(Receive Not Empty),当该位被置位的时候,就是提示已经有数据被接收到了,并且可以读出来了。通过读USART_DR可以将该位清零,也可以向该位写0,直接清除。
IDLE:监测到总线空闲;当检测到总线空闲时,该位被硬件置位。如果USART_CR1中的IDLEIE为’1’,则产生中断。
ORE:过载错误(Overrun Error)当RXNE仍然是’1’的时候,当前被接收在移位寄存器中的数据,需要传送至RDR寄存器时,硬件将该位置位。如果USART_CR1中的RXNEIE为’1’的话,则产生中断。
NE: 噪声错误(Noise Error)在接收到的帧检测到噪音时,由硬件对该位置位。
FE: 帧错误(Framing Error)当检测到同步错位,过多的噪声或者检测到断开符,该位被硬件置位。
PE: 校验错误(Parity Error)在接收模式下,如果出现奇偶校验错误,硬件对该位置位。

USART_DR 串口数据(Data)寄存器;这是一个双寄存器,包含了TDR和RDR,对它读操作,读取的是RDR寄存器的值,对它的写操作,实际上是写到TDR寄存器的;当向该寄存器写数据的时候,串口就会自动发送,当收到收据的时候,也是存在该寄存器内。
只用了低9位(DR[8:0]),其他都是保留。该寄存器兼具读和写的功能。MSB 位(根据数据的长度不同,MSB是第7位或者第8位)是校验位。

USART_BRR 串口波特率(BaudRate)寄存器,设置它就可以达到配置不同波特率的目的。
DIV_Mantissa[11:0]:USARTDIV的整数部分;这12位定义了USART分频器除法因子(USARTDIV)的整数部分。
DIV_Fraction[3:0]:USARTDIV的小数部分这4位定义了USART分频器除法因子(USARTDIV)的小数部分。;

USART_CR1 串口控制(Control)寄存器1;串口的很多配置都是通过这3个寄存器来设置的。
该寄存器的高 18 位没有用到,低 14 位用于串口的功能设置。
UE:串口使能(Usart Enable)位,通过该位置1,以使能串口。当该位被清零,分频器和输出停止工作,以减少功耗。
M:字长选择位,当该位为0的时候设置串口为8个字长外加停止位,停止位的个数是根据USART_CR2的[13:12]位设置来决定的,默认为0。
WAKE:唤醒;置0,被空闲总线唤醒;置1,被地址标记唤醒。
PCE:校验控制使能(Parity Control Enable)位,置0,则禁止校验,否则使能校验。
PS:校验位选择(Parity Select)位,设置为0则为偶校验,否则为奇校验。
PEIE:PE中断使能(Parity Error Interrupt Enable),置0,禁止中断;置1,当USART_SR中的PE为’1’时,产生USART中断。
TXIE:发送缓冲区空中断使能(Transmit Interrupt Enable)位,设置该位为 1,当 USART_SR 中的 TXE 位为1 时,将产生串口中断。
TCIE:发送完成中断使能(Transmit Complete Interrupt Enable)位,设置该位为 1,当 USART_SR 中的 TC位为 1 时,将产生串口中断。
RXNEIE:接收缓冲区非空中断使能(Receive Non-Empty Interrupt Enable)位,设置该位为 1,当 USART_SR中的 ORE 或者 RXNE 位为 1 时,将产生串口中断。
IDLEIE:IDLE中断使能(IDLE Interrupt Enable)位,置0,禁止中断;置1,当USART_SR中的IDLE为’1’时,产生USART中断。
TE:发送使能(Transmit Enable)位,设置为1,将开启串口的发送功能。
RE:接收使能(Receive Enable)位,用法同 TE。
RWU:接收唤醒(Receiver Wakeup)位;置0,正常模式;置1,静默模式。
SBK:发送断开帧(Send Break)位;使用该位来发送断开字符。该位可以由软件设置或清除。操作过程应该是软件设置位它,然后在断开帧的停止位时,由硬件将该位复位。

USART_CR2 串口控制(Control)寄存器2:
LINEN:LIN模式使能(LIN Enable)位;在LIN模式下,可以用USART_CR1寄存器中的SBK位发送LIN同步断开符(低13位),以及检测LIN同步断开符。
STOP:停止位(STOP)位;这2位用来设置停止位的位数;00:1个停止位;01:0.5个停止位;10:2个停止位;11:1.5个停止位;
CLKEN:时钟使能(Clock Enable)位;该位用来使能CK引脚。
CPOL:时钟极性(Clock Polarity)位;在同步模式下,可以用该位选择SLCK引脚上时钟输出的极性。
CPHA:时钟相位(Clock Phase)位;在同步模式下,可以用该位选择SLCK引脚上时钟输出的相位。
LBCL:最后一位时钟脉冲(Last Bit Clock Pulse)位;在同步模式下,使用该位来控制是否在CK引脚上输出最后发送的那个数据字节(MSB)对应的时钟脉冲。
LBDIE:LIN断开符检测中断使能(LIN Break Detection Interrupt Enable)位;置0,禁止中断;置1,只要USART_SR寄存器中的LBD为’1’就产生中断。
LBDL:LIN断开符检测长度(LIN Break Detection Length)位;该位用来选择是11位还是10位的断开符检测。
ADD[3:0]:本设备的USART节点地址。这是在多处理器通信下的静默模式中使用的,使用地址标记来唤醒某个USART设备。

USART_CR3 串口控制(Control)寄存器3:
CTSIE:CTS中断使能(CTS Interrupt Enable)位;
CTSE:CTS使能(CTS Enable)位;
RTSE:RTS使能(RTS Enable)位;
DMAT:DMA发送(DMA Transmitter)位;
DMAR: DMA接收(DMA Receiver)位;
SCEN: 智能卡使能(Smartcard Enable)位;该位用来使能智能卡模式
NACK:智能卡NACK(Smartcard NACK)位;置0,不发送NACK;置1,发送NACK;
HDSEL:半双工选择(Half-duplex Selection)位;选择单线半双工模式;
IRLP:红外低功耗(IrDA Low-Power)位;该位用来选择普通模式还是低功耗红外模式;
IREN:红外模式使能(IrDA Enable)位;
EIE:错误中断使能(Error Interrupt Enable)位;

USART_GTPR 保护时间(Guard Time)和预分频(Prescaler)寄存器:
GT[7:0]:保护时间值(Guard Time)位;该位域规定了以波特时钟为单位的保护时间。在智能卡模式下,需要这个功能。当保护时间过去后,才会设置发送完成标志。
PSC[7:0]:预分频器值(Prescaler)位;在红外或智能卡模式,才需要这个功能。

关键字:STM32F10x  串口寄存器 引用地址:STM32F10x中的串口寄存器

上一篇:STM32F10x的LCD(ILI9320)显示
下一篇:STM32 常用GPIO操作函数记录

推荐阅读最新更新时间:2024-11-08 12:56

STM32 串口的基本配置(寄存器版)笔记
1.串口 1.串口作为MCU和外界的连接工具,既可以检验代码的正确性,也可以和上位机进行交流 2.在STM32F103RCT6中,最多支持5路串口,对于串口而言,一般使用串行通信(USART1--5) 3.几个比较重要的寄存器: 具体配置过程 1.计算波特率(整数和小数部分) 2.初始化GPIO口 3.复位USART 配置波特率,配置奇偶校验,停止位等 4.配置中断(可编写中断服务函数) 代码实现: //初始化IO 串口1 //pclk2:PCLK2时钟频率(Mhz) //bound:波特率 //1.计算波特率(整数和小数) //2.初始化引脚 //3.复位USAR
[单片机]
STM32 <font color='red'>串口</font>的基本配置(<font color='red'>寄存器</font>版)笔记
Stm32f10x 新建工程详解
环境: STM32F10x 3.5固件库。下载地址 http://www.st.com/internet/com/SOFTWARE_RESOURCES/SW_COMPONENT/FIRMWARE/stm32f10x_stdperiph_lib.zip MDK4.23 编译器 一、第一步新建工程 取名 NewProject 图1 二、选择芯片型号 图2 三、点否,不加载启动文件(后面我们自己手动添加) 图3 四、在工程下新建STM32LIB,OBJ,LIST,APP四个文件夹(文件名可自定)。 在STM32LIB文件夹下新建M3文件夹。 复制STM32F10x_StdPeriph_Lib_V3.5.0\Li
[单片机]
<font color='red'>Stm32f10x</font> 新建工程详解
fatfs文件系统移植到STM32F10x
//文件系统与SD卡驱动接口文件diskio.c #include diskio.h #include ffconf.h #include #include MMC_SD.h DSTATUS disk_initialize ( BYTE drv ) { int Status; switch (drv) { case 0 : // Status = MSD0_Init(); Status = SD_Init(); if(Status==0){ return RES_OK; }else{ return STA_NOINIT; } case 1
[单片机]
SST25VF016B串行flash驱动程序基于STM32F10x
#define Dummy_Byte 0xff #define Read_Data 0x03 //读取存储器数据 #define HighSpeedReadData 0x0B //快速读取存储器数据 #define SectorErace_4KB 0x20 //扇区擦除 #define BlockErace_32KB 0x52 //32KB块擦除 #define BlockErace_64KB 0xD8
[单片机]
STM32F10x在环境下的开发过程
STM 32F10x在EWARM-EV-WEB-520环境下的开发过程 (利用H-JTAG SERVER) 一、首先下载ARM-based 32-bit MCU STM32F10xxx standard peripheral library stm32f10x_stdperiph_lib_v3.0.0.zip http://www.st.com/stonline/products/support/micro/files/stm32f10x_stdperiph_lib_v3.0.0.zip 二、建立STM32 LCCD工程 1.解压stm32f10x_stdperiph_lib_v3.0.0.zip软件包,把其中的 Lib
[单片机]
STM32F10x_RTC秒中断
Ⅰ、概述 RTC(Real Time Clock)是实时时钟的意思,它其实和TIM有点类似,也是利用计数的原理,选择RTC时钟源,再进行分频,到达计数的目的。 该文主要讲述关于RTC的秒中断功能,这个功能类似SysTick系统滴答的功能。RTC秒中断功能其实是每计数一次就中断一次。注意,这里所说的秒中断并非一定是一秒的时间,它是由RTC时钟源和分频值决定的“秒”的时间,当然也是可以做到1秒钟中断一次。 本文章提供的实例工程,其实验效果是: 主函数间隔0.5秒LED变化一次; 秒中断一次打印数据 RTC Sec... ; 也就是LED变化一次,串口打印一次数据 RTC Sec... 扩展部分的功能RTC计数:可以实现
[单片机]
STM32F10x_RTC秒中断
STM32F10x芯片GPIO/AFIO端口配置总结
1、介绍 STM32F10x芯片的GPIO/AFIO配置主要包括以下几方面知识:在时钟控制模块中配置好相应总线时钟,并在总线上使能对应的GPIO口(AFIO口,需要的话)时钟后:根据需求配置相应GPIO端口为对应的输入/输出模式,按需求更改/读取端口的数据;端口功能重映射;若用外部中断,则将中断线与对应引脚链接起来。 STM32F10x芯片的每个GPIO端口都有7个相关的寄存器:2个32位配置寄存器(GPIOx_CRL,GPIOx_CRH),两个32位数据寄存器(GPIOx_IDR,GPIOx_ODR),一个32位置位/复位寄存器(GPIOx_BSRR),一个16位复位寄存器(GPIOx_BRR)和一个32位锁定寄存器(GPI
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved