/*******************************************************************************
* 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,USART_IT_TXE)){ //串口2发送中断
//此处加入发送串口数据组帧
stm32串口中断收发数据环形缓冲区的设计
最新推荐文章于 2025-10-21 13:53:10 发布
本文介绍了如何在STM32中设计串口中断收发的数据环形缓冲区,通过中断判断收发状态,有效管理数据传输。

最低0.47元/天 解锁文章
1208

被折叠的 条评论
为什么被折叠?



