标题: 不定长串口字节接受程序 就是进不了空闲中断 [打印本页]

作者: zhaowang2410    时间: 2016-12-16 10:11
标题: 不定长串口字节接受程序 就是进不了空闲中断
u8 Clear=Clear;

        if (USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //????????
        {
        
                RX_BUF[RX_HEAD_PTR]= USART_ReceiveData(USART1);//SBUF0;
                RX_HEAD_PTR=(RX_HEAD_PTR+1)&0x3f;
                //USART_ClearITPendingBit(USART1, USART_IT_RXNE); //ÇåÖD¶Ï±êÖ¾Î
          //USART_ClearFlag(USART1,USART_FLAG_TC);  //?????
                //         if(USART_GetFlagStatus(USART1,USART_FLAG_ORE)==SET)
        // {
        //        USART_ClearFlag(USART1,USART_FLAG_ORE); //?SR????????
        //        USART_ReceiveData(USART1);    //?DR
        // }
        //while(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET){}//μè′y½óêü½áêø
               

        }
        else if(USART_GetITStatus(USART1, USART_IT_IDLE) != RESET)
        {
                Clear=USART1->SR;//¶áSR¼Ä′æÆ÷
                Clear=USART1->DR;//¶áDR¼Ä′æÆ÷
                Recflag=1;
   }
         /*·¢Ëíêy¾YÖD¶Ï*/
  if(USART_GetITStatus(USART1, USART_IT_TXE) != RESET)
  {  
    if (TX_HEAD_PTR!=TX_TAIL_PTR)
                {
                        USART_SendData(USART1, TX_BUF[TX_TAIL_PTR]);
                        TX_TAIL_PTR=(TX_TAIL_PTR+1)&0xff;
                }else
                {
                        USART_ITConfig(USART1, USART_IT_TXE, DISABLE); //·¢Ëííê3éÖ®oóÇå·¢ËíÖD¶Ï
      TX_HEAD_PTR=TX_TAIL_PTR=0;
                  RS485 =0;
    }

  }
就是进不了空闲中断


作者: 夭夭熊3    时间: 2020-4-25 13:54
请问楼主解决了吗




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1