串口中断接收多个字节求助

2019-10-15 23:12发布

我本来是调试modbus的,发现,我每次发送的数据在串口中断中只能接收一个字节,
void USART2_IRQHandler(void)      
        {
int Res,USART_RX_STA=0,USART_RX_BUF[100];

                if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)   
        {
                USART_ClearFlag(USART2,USART_FLAG_RXNE);   
                Res =USART_ReceiveData(USART2);            
                USART_RX_BUF[USART_RX_STA] = Res;      
                USART_RX_STA++;     
        }       
        }   

我用这个测试了下,串口调试助手16进制,每次发送123456,确实只能收到12就跳出中断了
之前也是,后来我就改成用DMA接收方式接收不定长数据。
请教大家,串口中断方式如何接收不定长数据呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。