你的这个速度很快。
你可以尝试往两个方向走。
1、使用串口接收中断。在中断中,只接收单字节的数据,不对数据进行判断。
在主循环中才处理数据和分析。
2、使用串口DMA接受+串口IDLE中断。
两个方案都要有缓存数据区,因为处理数据的时间可能要大于单次单次接收数据的时间。
这种通信速度比较快,而且系统可能还有别的中断的,建议不要每收到一个字节就产生一次中断,这样容易丢,可以用DMA,DMA的特点就是接收数据的过程由硬件DMA控制器完成,不需要应用程序去处理,等到收完了DMA控制器会产生一个中断,这时候应用才去取数据并处理
像你这里的,应该是那种不定长的数据,可以用循环DMA的方式,做一个环形缓冲区处理