/*******************************************************************************
* Function Name : USART2_IRQHandler
* Description : This function handles USART2 global interrupt request.
* Input : None
* Output : None
* Return : None
*******************************************************************************/
void USART2_IRQHandler(void)
{
BYTE bTByte;
WORD wTPsn;
if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET) //串口2接收中断
{
/* Read one byte from the receive data register */
bTByte = (USART_ReceiveData(USART2));
wTPsn = W_InSerial2;
if(++wTPsn == MAX_SERIAL_LEN2) wTPsn = 0;//修改指针边界
if(wTPsn != W_OutSerial2) //队列没有满的情况下
{
B_SerialQueue2[W_InSerial2] = bTByte;
W_InSerial2 = wTPsn;
}
/* Clear the USART2 Receive interrupt */
USART_ClearITPendingBit(USART2, USART_IT_RXNE);
}
if(USART_GetITStatus(USART2
stm32串口中断收发数据环形缓冲区的设计
最新推荐文章于 2024-07-22 10:15:29 发布
本文介绍了如何在STM32中设计串口中断收发的数据环形缓冲区,通过中断判断收发状态,有效管理数据传输。
摘要由CSDN通过智能技术生成