历史上的今天

今天是:2024年09月23日(星期一)

正在发生

2020年09月23日 | STM32F10x中的串口寄存器

发布者:as233632621 来源: 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操作函数记录

推荐阅读

   作为vivo下半年的主推机型,X23有着肩负重任的使命,其继承了X21广受好评的优点,同时还加入灵动水滴屏提升屏占比,3D幻影极光纹让人爱不释手,拍照方面更是拥有让人惊喜的超广角设计,拍风景大片与拍大长腿妹子,都是一台X23可以完成的任务。  vivo X23基于高通骁龙670平台,全系标配8GB LPDDR4运行内存,搭配128GB储存空间。主相机采用1200万...
  物联网硬件、联网装备和IoT操作系统,底层逻辑完全不同。这周观察到了更多有趣的信号。  其一,中国有20%的机床企业正在亏损。  根据中国机床工具协会发布的“2019年上半年机床工具行业经济运行情况”分析,机床工具行业5547家规上企业中,亏损企业1033家,亏损面为18.6%,该协会重点联系企业6月亏损企业占比为38.3%,而且1-6月金属加工机床新增订...
  在应用的时候PA2口需要设置成推挽输出,控制一个外部电源开关,端口初始化程序如下:    GPIO_DeInit(GPIOA);    GPIO_Init(GPIOA,GPIO_PIN_2,GPIO_MODE_OUT_PP_HIGH_SLOW);  在设置完后,端口会马上输出高电平,于是又加了一句:    GPIO_WriteLow(GPIOA,GPIO_PIN_2);  完成之后,发现被供电的器件在第一次上电的时候会被触发,而程...
9月22日,马勒动力系统(MAHLE Powertrain)和Allotrope Energy推出一种新的电池技术,可提供超快速充电和良好的功率密度。通过结合超级电容器和传统锂离子电池的优点,该全新锂碳技术能够实现快速充满电,时间与为内燃机动力汽车加油的时间接近。此外,锂碳电池不含稀土金属,可实现完全可回收,且不易受到失控事件的影响。(图片来源:马勒)马勒动力...

史海拾趣

问答坊 | AI 解惑

传说中很神的Wince6怎么这么慢?

传说中Wince6做了很多重大改进,效率大幅度提升。但是我最近从wince5转到Wince6之后,发现: 在PXA270平台上,直接从wince6的MainStoneIII改来的BSP,速度明显比wince5慢很多。在板子上慢吧,咱先不提了,可能是BSP还没有优化好,是咱的水平太菜。 ...…

查看全部问答∨

内存映射大文件问题

我的可用物理内存只剩余1M,文件有20M 如果我一次映射进去的话,会映射失败,因为内存不足。 如果一次只映射一小部分,释放在重新映射的话,会导致频繁调用mapviewoffile, 因为我每次需要访问的数据很小,只有几k,当然有少数情况需要映射的数据 ...…

查看全部问答∨

带有DMA和中断的驱动程序该如何调试,DM可以吗?

能在模拟器上进行调试吗,还是必须得下到板子上?…

查看全部问答∨

两个ARM9板子要进行网络通信,如何设置?

如题,WinCE6.0下,两个ARM9板子,一个做服务器端,一个做客户端。在局域网内,一个ARM9板子用网线和一台PC相连,另一个也用网线和一台PC机相连。服务器端的IP为192.168.0.2。在客户端连接服务器时,提示无法连接服务器。在硬件的连接上我该怎么做 ...…

查看全部问答∨

关于CC2510收发数据时的频率变换的时间问题

  我在用CC2510做无线收发,使用TDMA。发送端每隔1ms改变一次频率发送数据,接收端一直接收数据。    在实验过程中当我把频率变换时间(即发送端每隔一段时间改变一次频率然后发送数据的时间)更改为1ms时接收端就接收不到数 ...…

查看全部问答∨

请教如何控制不去调用这意料之外的函数???

程序片段如下 定时器中: timerCount++; if (timerCount >= 50) {                       /*dip1只有 0、1两种情况*/    if (dip1 == 0)&nb ...…

查看全部问答∨

怎么VS2005建的CE5.0的项目编译后在CE5.0系统上运行不了?

是不是没装。NET CF? 5.0自带的。NET CF版本是多少? 答者有分~…

查看全部问答∨

RT-Thread的一个开源产品:串口转以太网

响应soso的号召,把RT-Thread这个稳定的网络产品也传了上来,详细信息如下:这个项目由RT-Thread的LwIP组件维护人 mbbill 捐献,稳定度也达到了RT- Thread/LwIP的最高水平,硬件基于AT91SAM7x256(mbbill亦是AT91SAM7x256分支维护人)。 ...…

查看全部问答∨

问一下STM32F系列IO的5V兼容问题

看到手册RM008(Rev10)的140页下面的图中有个VDD_FT,这个电压是怎么加上的?我在引脚中找不到这个引脚,难道5V是内部升上去的? 谢谢!…

查看全部问答∨

求助!!!

AD6将电路板转化为PCB时总是与其他的电路图相关联是怎么回事? 就是在原理图中点了compile后出现的对话框中所含的验证元件包含了工程中所有原理图里的元件,这是怎么回事呢?求高人指教,万分感谢啊!…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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