STM32 例程 串口实验 联系客服

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

01:0.5个停止位; 10:2个停止位; 11:1.5个停止位;

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

位11 CLKEN:时钟使能 (Clock enable)

该位用来使能CK引脚 0:禁止CK引脚; 1:使能CK引脚。

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

位10 CPOL:时钟极性 (Clock polarity)

在同步模式下,可以用该位选择SLCK引脚上时钟输出的极性。和CPHA位一起配合来产生需要的时钟/数据的采样关系 0:总线空闲时CK引脚上保持低电平; 1:总线空闲时CK引脚上保持高电平。 注:UART4和UART5上不存在这一位。

位9 CPHA: 时钟相位 (Clock phase)

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

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

位8 LBCL:最后一位时钟脉冲 (Last bit clock pulse)

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

0:最后一位数据的时钟脉冲不从CK输出; 1:最后一位数据的时钟脉冲会从CK输出。 注意:

1. 最后一个数据位就是第8或者第9个发送的位(根据USART_CR1寄

存器中的M位所定义的8或者9位数据帧格式)。 2. UART4和UART5上不存在这一位。

位7 保留位,硬件强制为0

位6 LBDIE:LIN断开符检测中断使能 (LIN break detection interrupt enable)

断开符中断屏蔽(使用断开分隔符来检测断开符) 0:禁止中断;

1:只要USART_SR寄存器中的LBD为’1’就产生中断。

位5 LBDL:LIN断开符检测长度 (LIN break detection length)

该位用来选择是11位还是10位的断开符检测 0:10位的断开符检测; 1:11位的断开符检测。

位4 保留位,硬件强制为0

位3:0 ADD[3:0]:本设备的USART节点地址

该位域给出本设备USART节点的地址。

这是在多处理器通信下的静默模式中使用的,使用地址标记来唤醒某个USART设备。

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

[编辑] USART_CR3(Control Register 3)控制寄存器3

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

位10 CTSIE:CTS中断使能 (CTS interrupt enable)

0:禁止中断;

1:USART_SR寄存器中的CTS为’1’时产生中断。 注:UART4和UART5上不存在这一位。

位9 CTSE:CTS使能 (CTS enable)

0:禁止CTS硬件流控制; 1:CTS模式使能,只有nCTS输入信号有效(拉成低电平)时才能发送数据。如果在数据传输的过程中,nCTS信号变成无效,那么发完这个数据后,传输就停止下来。如果当nCTS为无效时,往数据寄存器里写数据,则要等到nCTS有效时才会发送这个数据。 注:UART4和UART5上不存在这一位。

位8 RTSE:RTS使能 (RTS enable)

0:禁止RTS硬件流控制;

1:RTS中断使能,只有接收缓冲区内有空余的空间时才请求下一个数据。当前数据发送完成后,发送操作就需要暂停下来。如果可以接收数据了,将nRTS输出置为有效(拉至低电平)。 注:UART4和UART5上不存在这一位。

位7 DMAT:DMA使能发送 (DMA enable transmitter)

该位由软件设置或清除。 0:禁止发送时的DMA模式。 1:使能发送时的DMA模式;

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

位6 DMAR: DMA使能接收 (DMA enable receiver)

该位由软件设置或清除。 0:禁止接收时的DMA模式。 1:使能接收时的DMA模式;

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

位5 SCEN: 智能卡模式使能 (Smartcard mode enable)

该位用来使能智能卡模式 0:禁止智能卡模式; 1:使能智能卡模式。

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

位4 NACK:智能卡NACK使能 (Smartcard NACK enable)

0:校验错误出现时,不发送NACK; 1:校验错误出现时,发送NACK。

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

位3 HDSEL:半双工选择 (Half-duplex selection)

选择单线半双工模式 0:不选择半双工模式; 1:选择半双工模式。

位2 IRLP:红外低功耗 (IrDA low-power)

该位用来选择普通模式还是低功耗红外模式 0:通常模式; 1:低功耗模式。

位1 IREN:红外模式使能 (IrDA mode enable)

该位由软件设置或清除。 0:不使能红外模式; 1:使能红外模式。

位0 EIE:错误中断使能 (Error interrupt enable)

在多缓冲通信模式下,如果该位为’1’,当有帧错误、过载错误或者噪声错误时(USART_SR中的FE=1,或者ORE=1,或者NE=1),则产生中断。 0:禁止中断;

1:只要USART_CR3中的DMAR=1,并且USART_SR中的FE=1,或者ORE=1,或者NE=1,则产生中断

[编辑] USART_GTPR(Guard Time and Prescaler Register)保护时间和预分频寄存器

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

位15:8 GT[7:0]:保护时间值 (Guard time value)

该位域规定了以波特时钟为单位的保护时间。

在智能卡模式下,需要这个功能。当保护时间过去后,才会设置发送完成标志(TC)。

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

位7:0 PSC[7:0]:预分频器值 (Prescaler value)

在红外(IrDA)低功耗模式下: PSC[7:0] = 红外低功耗波特率

对系统时钟分频以获得低功耗模式下的频率: 源时钟被寄存器中的值(仅有8位有效)分频 00000000:保留 – 不要写入该值; 00000001:对源时钟1分频; 00000010:对源时钟2分频; ??

在红外(IrDA)的正常模式下:PSC只能设置为00000001 在智能卡模式下: PSC[4:0]:预分频值

对系统时钟进行分频,给智能卡提供时钟。

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