外部大约间隔1s左右传输一帧数据过来,正常情况下是一帧5个字节.如果采用接收中断的方式接收数据HAL_UART_Receive_IT( huart1, (uint8_t *) Uart1_Rxdata, 5); 假如数据正常传输过程种,中间突然出现了一帧数据为4个字节,那处理器会丢掉这一帧数据吗? 还是将这一帧4个字节 + 下一帧的第一个字节 组成5个字节的数据,产生接收中断?
再假如数据正常传输过程种,中间突然出现了一帧数据为6个字节,那处理器会丢掉这一帧数据吗? 还是将这一帧数据的前5个字节一起产生接收中断,剩下一个字节丢弃?
2024-4-2 15:12:58
如果丢失一个,会把后面的数据连接起来。楼主可以考虑使用空闲中断或者中断队列的方式,将所有接收到的数据放入到缓冲区中,保证数据的完整性。
如果丢失一个,会把后面的数据连接起来。楼主可以考虑使用空闲中断或者中断队列的方式,将所有接收到的数据放入到缓冲区中,保证数据的完整性。
举报