专注电子技术学习与研究
当前位置:单片机教程网 >> STM32 >> 浏览文章

SMT32 串口 使能 USART_CR1 (TE RE UE)

作者:真诚冰雪天涯   来源:真诚冰雪天涯   点击数:  更新时间:2014年06月17日   【字体:
看了几个小时为了找 串口的 TE(发送使能)、RE(接收使能)在哪里开启了,终于找到了
正常开启串口只需用下列函数 置位USART_CR1 UE 位即可使能响应中断,比如使能USART1如下:

 
  USART_Cmd(USART1, ENABLE);

但是同样在USART_CR1 寄存器里同样还有 TE(发送使能)、RE(接收使能)需要置位,之前一直没找到,后来在 stm32f10x_usart.c 的函数USART_Init(USART_TypeDef* USARTx, USART_InitTypeDef* USART_InitStruct)里终于找到对TE、RE位的处理,几如下:


  tmpreg = USARTx->CR1;
 
  tmpreg &= CR1_CLEAR_Mask;
 
 
 
 
  tmpreg |= (uint32_t)USART_InitStruct->USART_WordLength | USART_InitStruct->USART_Parity |
            USART_InitStruct->USART_Mode;
 
  USARTx->CR1 = (uint16_t)tmpreg;

可以看出是根据选在的模式配置了是否把TE、RE使能也就是在配置串口时这条语句: USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;//收发模式,发送端和接收端都要使用

以上语句决定在串口初始化函数里使能TE、RE。。

关闭窗口

相关文章