麻烦看看这个串口接收中断对不对?

2019-07-14 19:37发布

void USART1_IRQHandler(void)                        //串口1中断服务程序
        {
                unsigned char rCh;  
        static char rCnt = 0;  
               
                if(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == SET)  
                {      
         //  USART_SendData(USART1, USART_ReceiveData(USART1));  
        rCh = USART_ReceiveData(USART1);  
        USART_RX_BUF[rCnt] = rCh;        
                rCnt++;       
        if(rCnt==10)       
                {
               
                    rCnt=0;
                    memcpy(USART_RX_TEM,USART_RX_BUF,10);//缓冲  
            USART_RX_STA = 1;  //通知主循环处理  
               
                }
               
                USART_ClearITPendingBit(USART1, USART_IT_RXNE);
                //USART_ClearFlag(USART1,USART_FLAG_TC);
        }
}

发送的:
if(USART_RX_STA==1)
                {
                USART_RX_STA=0;
            UART_PutStr(USART1, "USART1 OK! ");
                UART_PutStr(USART1, (u8*)USART_RX_TEM[USART_REC_LEN]);
               
                }


运行后:串口返回的数据和发送的对不上。。发送的第一句正常 ,第二句对不上。


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。