STM32 例程 串口实验

发布时间 : 星期三 文章STM32 例程 串口实验更新完毕开始阅读

位31:9 保留位,由硬件强制为0 位8:0 DR[8:0]:数据值 (Data value)

包含了发送或接收的数据。由于它是由两个寄存器组成的,一个给发送用(TDR),一个给接收用(RDR),该寄存器兼具读和写的功能。TDR寄存器提供了内部总线和输出移位寄存器之间的并行接口。RDR寄存器提供了输入移位寄存器和内部总线之间的并行接口。(参见USART内部结构框图) 如果USART_CR1中的校验控制使能位PCE=1,在发送数据时,写到MSB的值(根据数据的长度不同,MSB是第7位或者第8位)会被后来的校验位取代。接收数据时,读到的MSB位是接收到的校验位。

[编辑] USART_BRR(Baud Rate Register)波特率寄存器

位31:16 保留位,硬件强制为0

位15:4 DIV_Mantissa[11:0]:USARTDIV的整数部分

这12位定义了USART分频器除法因子(USARTDIV)的整数部分。

位3:0 DIV_Fraction[3:0]:USARTDIV的小数部分

这4位定义了USART分频器除法因子(USARTDIV)的小数部分。

[编辑] USART_CR1(Control Register 1)控制寄存器1

位31:14 保留位,硬件强制为0 位13 UE:USART使能 (USART enable)

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

位12 M:字长 (Word length)

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

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

位11 WAKE:唤醒的方法 (Wakeup method)

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

位10 PCE:检验控制使能 (Parity control enable)

用该位选择是否进行硬件校验控制(对于发送来说就是校验位的产生;对于接收来说就是校验位的检测)。当使能了该位,在发送数据的最高位(如果M=1,最高位就是第9位;如果M=0,最高位就是第8位)插入校验位;对接收到的数据检查其校验位。软件对它置’1’或清’0’。一旦设置了该位,当前字节传输完成后,校验控制才生效。 0:禁止校验控制; 1:使能校验控制。

位9 PS:校验选择 (Parity selection)

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

位8 PEIE:PE中断使能 (PE interrupt enable)

该位由软件设置或清除。 0:禁止产生中断;

1:当USART_SR中的PE为’1’时,产生USART中断。

位7 TXEIE:发送缓冲区空中断使能 (TXE interrupt enable)

该位由软件设置或清除。 0:禁止产生中断;

1:当USART_SR中的TXE为’1’时,产生USART中断。

位6 TCIE:发送完成中断使能 (Transmission complete interrupt enable)

该位由软件设置或清除。 0:禁止产生中断;

1:当USART_SR中的TC为’1’时,产生USART中断。

位5 RXNEIE:接收缓冲区非空中断使能 (RXNE interrupt enable)

该位由软件设置或清除。 0:禁止产生中断;

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

位4 IDLEIE:IDLE中断使能 (IDLE interrupt enable)

该位由软件设置或清除。 0:禁止产生中断;

1:当USART_SR中的IDLE为’1’时,产生USART中断。

位3 TE:发送使能 (Transmitter enable)

该位使能发送器。该位由软件设置或清除。 0:禁止发送; 1:使能发送。 注意:

1. 在数据传输过程中,除了在智能卡模式下,如果TE位上有个0脉

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

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

位2 RE:接收使能 (Receiver enable)

该位由软件设置或清除。 0:禁止接收;

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

位1 RWU:接收唤醒 (Receiver wakeup)

该位用来决定是否把USART置于静默模式。该位由软件设置或清除。当唤醒序列到来时,硬件也会将其清零。 0:接收器处于正常工作模式; 1:接收器处于静默模式。 注意:

1. 在把USART置于静默模式(设置RWU位)之前,USART要已经先接收

了一个数据字节。否则在静默模式下,不能被空闲总线检测唤醒。 2. 当配置成地址标记检测唤醒(WAKE位=1),在RXNE位被置位时,不

能用软件修改RWU位。

位0 SBK:发送断开帧 (Send break)

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

[编辑] USART_CR2(Control Register 2)控制寄存器2

位31:15 保留位,硬件强制为0。

位14 LINEN:LIN模式使能 (LIN mode enable)

该位由软件设置或清除。 0:禁止LIN模式; 1:使能LIN模式。 在LIN模式下,可以用USART_CR1寄存器中的SBK位发送LIN同步断开符(低13位),以及检测LIN同步断开符。

位13:12 STOP:停止位 (STOP bits)

这2位用来设置停止位的位数 00:1个停止位;

联系合同范文客服:xxxxx#qq.com(#替换为@)