0
点赞
收藏
分享

微信扫一扫

STM32 空闲中断处理相关

简介

空闲中断:既可以用来作为不定长接收数据帧的断帧判断/特别是DMA数据的接收,也可以用来指示中断发送的结束。

  1. 在需要发送的地方
USART_ITConfig(UART5, USART_IT_IDLE, ENABLE);
  1. 在接收的中间
USART_ITConfig(UART5, USART_IT_IDLE, ENABLE);
  1. 在空闲中断里面分清是发送结束还是接收结束
void UART5_IRQHandler(void)
{

  if(USART_GetITStatus(UART5,USART_IT_TC))
  {

  }

  if(USART_GetITStatus(UART5,USART_IT_RXNE))
  {

  }

  if(USART_GetITStatus(UART5,USART_IT_IDLE))/*空闲中断*/
  {
          status = UART5->SR;
          status = UART5->DR;/*清标志*/       
         for(i=0;i<PrintDMA.Prtsize;i++)/*数据缓存*/
        {            
              Rbuff[i] = *(PrintDMA.pPrt+i);
        }  

   PrintDMA.pPrt = NULL;/*接收数据指针和长度归零*/
        PrintDMA.Prtsize =0;
        Flag_PrtFinished =TRUE;   
        USART_ITConfig(UART5,USART_IT_RXNE, DISABLE); //
        USART_ITConfig(UART5, USART_IT_IDLE, DISABLE); //

  }

}
举报

相关推荐

0 条评论