我本来是调试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接收方式接收不定长数据。
请教大家,串口中断方式如何接收不定长数据呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>