STM32寄存器列表 串口通讯相关寄存器

作者:fly 发布于:2014-6-18 10:38 分类:嵌入式

本文出自www.forwhat.cn

 

USART_DR(数据寄存器)

8-0位:DR[8:0]数据值,包含了发送或接收的数据。由于它是由两个寄存器组成的,一个给发送用(TDR),一个给接收用(RDR),该寄存器兼具读和写的功能。

      TDR寄存器提供了内部总线和输出移位寄存器之间的并行接口(参见图248)。RDR寄存器提供了输入移位寄存器和内部总线之间的并行接口。

      当使能校验位(USART_CR1中PCE位被置位)进行发送时,写到MSB的值(根据数据的长度不同,MSB是第7位或者第8位)会被后来的校验位该取代。

      当使能校验位进行接收时,读到的MSB位是接收到的校验位。

 

 

USART_BRR(波特比率寄存器)

15-4位:DIV_Mantissa[11:0]USARTDIV的整数部分,这12位定义了USART分频器除法因子(USARTDIV)的整数部分。

3-0位:DIV_Fraction[3:0]USARTDIV的小数部分,这4位定义了USART分频器除法因子(USARTDIV)的小数部分。

USART_CR1(控制寄存器1)

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16


15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

保留 UE M WAKE PCE PS PEIE TXEIE TCIE RXNEIE IDLEIE TE RE RWU SBK

13位:UE-USART使能,当该位被清零,在当前字节传输完成后USART的分频器和输出停止工作,以减少功耗。该位由软件设置和清零。

     定义:0(USART分频器和输出被禁止),1(USART模块使能)

12位:M字长,该位定义了数据字的长度,由软件对其设置和清零,定义:0(一个起始位,8个数据位,n个停止位)1(一个起始位,9个数据位,n个停止位)

     注意:在数据传输过程中(发送或者接收时),不能修改这个位。

11位:WAKE唤醒的方法,这位决定了把USART唤醒的方法,由软件对该位设置和清零。定义:0(被空闲总线唤醒)1(被地址标记唤醒)

10位:PCE检验控制使能,用该位选择是否进行硬件校验控制(对于发送来说就是校验位的产生;对于接收来说就是校验位的检测)。当使能了该位,

     在发送数据的最高位(如果M=1,最高位就是第9位;如果M=0,最高位就是第8位)插入校验位;对接收到的数据检查其校验位。软件对它置’1’或清’0’。

     一旦设置了该位,当前字节传输完成后,校验控制才生效。定义:0(禁止校验控制),1(使能校验控制)

9位:PS校验选择,当校验控制使能后,该位用来选择是采用偶校验还是奇校验。软件对它置1或清0。当前字节传输完成后,该选择生效。定义:0(偶校验)1(奇校验)

8位:PEIE-PE中断使能,该位由软件设置或清除,定义:0(禁止产生中断),1(当USART_SR中的PE为’1’时,产生USART中断)

7位:TXEIE发送缓冲区空中断使能,(手动),定义:0(禁止产生中断),1(当USART_SR中的TXE为’1’时,产生USART中断)

6位:TCIE发送完成中断使能,(手动),定义:0(禁止产生中断)1(当USART_SR中的TC为’1’时,产生USART中断)

5位:RXNEIE接收缓冲区非空中断使能,(手动),定义:0(禁止产生中断),1(当USART_SR中的ORE或者RXNE为’1’时,产生USART中断)

4位:IDLEIE-IDLE中断使能,(手动),定义:0(禁止产生中断),1(当USART_SR中的IDLE为’1’时,产生USART中断)

3位:TE发送使能,该位使能发送器。(手动,定义:0(禁止发送),1(使能发送)注意:1.在数据传输过程中,除了在智能卡模式下,

    如果TE位 上有个0脉冲(即设置为’0’之后再设置为’1’),会在当前数据字传输完成后,发送一个“前导符”(空闲总线)。

    2.当TE被设置后,在真正发送开始之前,有一个比特时间的延迟。

2位:RE接收使能(手动),定义:0(禁止接收),1(使能接收,并开始搜寻RX引脚上的起始位)

1位:RWU接收唤醒,该位用来决定是否把USART置于静默模式。该位由软件设置或清除。当唤醒序列到来时,硬件也会将其清零

    定义:0(接收器处于正常工作模式),1(接收器处于静默模式)注意:1.在把USART置于静默模式(设置RWU位)之前,USART要已经先接收了一个数据字节。

    否则在静默模式下,不能被空闲总线检测唤醒。2.当配置成地址标记检测唤醒(WAKE位=1),在RXNE位被置位时,不能用软件修改RWU位。

0位:SBK发送断开帧,使用该位来发送断开字符。该位可以由软件设置或清除。操作过程应该是软件设置位它,然后在断开帧的停止位时,由硬件将该位复位。

    定义:0(没有发送断开字符),1(将要发送断开字符)

 

 

控制寄存器2(USART_CR2)

14位:LINEN0-LIN模式使能(手动),定义:0(禁止LIN模式),1(使能LIN模式)

     在LIN模式下,可以用USART_CR1寄存器中的SBK位发送LIN同步断开符(低13位),以及检测LIN同步断开符。

13-12位:STOP停止位,这2位用来设置停止位的位数,定义:00(1个停止位)01(0.5个停止位)10(2个停止位)11(1.5个停止位)

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

11位:CLKEN时钟使能,该位用来使能CK引脚,定义:0(禁止CK引脚),1(使能CK引脚)注:UART4和UART5上不存在这一位。

10位:CPOL时钟极性,在同步模式下,可以用该位选择SLCK引脚上时钟输出的极性。和CPHA位一起配合来产生需要的时钟/数据的采样关系,

     定义:0(总线空闲时CK引脚上保持低电平),1(总线空闲时CK引脚上保持高电平)注:UART4和UART5上不存在这一位。

9位:CPHA时钟相位,在同步模式下,可以用该位选择SLCK引脚上时钟输出的相位。和CPOL位一起配合来产生需要的时钟/数据的采样关系(参见图259和图260)。

    定义:0(在时钟的第一个边沿进行数据捕获),1(在时钟的第二个边沿进行数据捕获)注:UART4和UART5上不存在这一位

8位:LBCL最后一位时钟脉冲,在同步模式下,使用该位来控制是否在CK引脚上输出最后发送的那个数据字节(MSB)对应的时钟脉冲

    定义:0(最后一位数据的时钟脉冲不从CK输出),1(最后一位数据的时钟脉冲会从CK输出)

    注意:1.最后一个数据位就是第8或者第9个发送的位(根据USART_CR1寄存器中的M位所定义的8或者9位数据帧格式)。2.UART4和UART5上不存在这一位。

6位:LBDIE-LIN断开符检测中断使能,断开符中断屏蔽(使用断开分隔符来检测断开符),定义:0(禁止中断),1(只要USART_SR寄存器中的LBD为’1’就产生中断)

5位:LBDL-LIN断开符检测长度,该位用来选择是11位还是10位的断开符检测,定义:0(10位的断开符检测),1(11位的断开符检测)

3-0位:ADD[3:0]本设备的USART节点地址,该位域给出本设备USART节点的地址。这是在多处理器通信下的静默模式中使用的,使用地址标记来唤醒某个USART设备

注意: 在使能发送后不能改写这三个位(CPOL、CPHA、LBCL)。

 

 

USART_CR3(控制寄存器3)

10位:CTSIE-CTS中断使能,定义:0(禁止中断),1(SART_SR寄存器中的CTS为’1’时产生中断)注:UART4和UART5上不存在这一位

9位:CTSE-CTS使能,定义:0:禁止CTS硬件流控制1:CTS模式使能,只有nCTS输入信号有效(拉成低电平)时才能发送数据。如果在数据传输的过程中,

    nCTS信号变成无效,那么发完这个数据后,传输就停止下来。如果当nCTS为无效时,往数据寄存器里写数据,则要等到nCTS有效时才会发送这个数据。

    注:UART4和UART5上不存在这一位

8位:RTSE-RTS使能,定义:0(禁止RTS硬件流控制)1(RTS中断使能,只有接收缓冲区内有空余的空间时才请求下一个数据。当前数据发送完成后,发送操作就需

    要暂停下来。如果可以接收数据了,将nRTS输出置为有效(拉至低电平)。注:UART4和UART5上不存在这一位。

7位:DMAT-DMA使能发送,(手动),定义:0(禁止发送时的DMA模式)1(使能发送时的DMA模式)注:UART4和UART5上不存在这一位。

6位:DMAR-DMA使能接收,(手动),定义:0(禁止接收时的DMA模式)1(使能接收时的DMA模式)注:UART4和UART5上不存在这一位。

5位:SCEN智能卡模式使能,该位用来使能智能卡模式,定义:0(禁止智能卡模式)1(使能智能卡模式)注:UART4和UART5上不存在这一位。

4位:NACK智能卡NACK使能,定义:0(校验错误出现时,不发送NACK)1(校验错误出现时,发送NACK)注:UART4和UART5上不存在这一位

3位:HDSEL半双工选择,选择单线半双工模式,定义:0(不选择半双工模式)1(选择半双工模式)

2位:IRLP红外低功耗,该位用来选择普通模式还是低功耗红外模式,定义:0(通常模式),1(低功耗模式)

1位:IREN红外模式使能,(手动),定义:0(不使能红外模式),1(使能红外模式)

0位:EIE错误中断使能,在多缓冲区通信模式下,当有帧错误、过载或者噪声错误时(USART_SR中的FE=1,或者ORE=1,或者NE=1)产生中断。

    定义:0(禁止中断),1(只要USART_CR3中的DMAR=1,并且USART_SR中的FE=1,或者ORE=1,或者NE=1,则产生中断)

 

 

保护时间和预分频寄存器(USART_GTPR)

15-8位:GT[7:0]保护时间值,该位域规定了以波特时钟为单位的保护时间。在智能卡模式下,需要这个功能。当保护时间过去后,才会设置发送完成标志。

       注:UART4和UART5上不存在这一位

7-0位:PSC[7:0]预分频器值,在红外(IrDA)低功耗模式下:PSC[7:0]=红外低功耗波特率,对系统时钟分频以获得低功耗模式下的频率:

      源时钟被寄存器中的值(仅有8位有效)分频,定义:00000000:保留 – 不要写入该值;00000001:对源时钟1分频;00000010:对源时钟2分频;

      在红外(IrDA)的正常模式下:PSC只能设置为00000001,在智能卡模式下,PSC[4:0]:预分频值,对系统时钟进行分频,给智能卡提供时钟。

      寄存器中给出的值(低5位有效)乘以2后,作为对源时钟的分频因子,00000:保留 – 不要写入该值;00001:对源时钟进行2分频;00010:对源时钟进行4分频

      00011:对源时钟进行6分频;注意:1.位[7:5]在智能卡模式下没有意义。2.UART4和UART5上不存在这一位。


 

发表评论:

 
Powered by emlog sitemap