新闻中心

EEPW首页>嵌入式系统>设计应用> STM32单片机中UART的使用过程

STM32单片机中UART的使用过程

作者: 时间:2013-02-22 来源:网络 收藏

而后使能收发中断。如:

/* Enable USART1 Receive and Transmit interrupts */

USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);

USART_ITConfig(USART1, USART_IT_TXE, ENABLE);

// USART_ITConfig(USART1, USART_IT_TXE, DISABLE);

注意:一般不将TXE中断使能。因为一旦将此中断使能,如果发送缓冲区空,则会立即进入中断中,因此可在程序中需要发送数据处,使能TXE中断。在中断种用USART_SendData()来发送数据。

完成中断使能后,还需要使能UART口:

如:

/* Enable the USART1 */

USART_Cmd(USART1, ENABLE);

/* Enable the USART2 */

USART_Cmd(USART2, ENABLE);

中断程序(stm32f10x_it.c)可以如下完成发送:注意所有的的串口中断需要在中断服务程序中判断中断源以分别处理。

void USART1_IRQHandler(void)

{

if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)

{

/* Read one byte from the receive data register */

RxBuffer1[RxCounter1++] = USART_ReceiveData(USART1);

if(RxCounter1 == NbrOfDataToRead1)

{

USART_ITConfig(USART1, USART_IT_RXNE, DISABLE);//发送完成后,将RXNE禁止。

}

}

if(USART_GetITStatus(USART1, USART_IT_TXE) != RESET)

{

USART_SendData(USART1, TxBuffer1[TxCounter1++]);

if(TxCounter1 == NbrOfDataToTransfer1)

{

USART_ITConfig(USART1, USART_IT_TXE, DISABLE);

}

}

}


上一页 1 2 下一页

关键词:STM32UART单片机

评论


相关推荐

技术专区

关闭