单片机如何接收和解析串口屏数据

  1. 实现一个环形队列,此队列为串口的环形缓冲区,以下称为环形缓冲区

  2. 在单片机的串口中断事件中,将串口接收到的数据存入环形缓冲区中(入队)

  3. 在main函数的循环中,检测串口缓冲区的长度是否大于1帧的长度

  4. 如果大于1帧的长度,判断帧头帧尾以及校验

  5. 如果帧头帧尾符合,且校验通过,将相应的数据拷贝到数组或者结构体中并将相应的数据出队,执行第7步

  6. 如果不符合,将队首出队,重新执行第4步

  7. 对数据进行解析

  8. 解析完毕,将已解析过的数据出队

参考以下工程

使用stm32cubeide(HAL库)开发