把接收到的数据放到一个数组里,比如ReceiveBuffer[256].
当判断收到上一个字节500ms后没有新的数据来,我们认为收到了一帧数据,当前数据包结束。收到数据包后,用strstr函数去判断是不是存在“+PID”,如果存在“+PID”表示是通讯来的数据,不是命令或状态数据。strstr会返回“+PID”位置的指针。如果指针为NULL,表示不存在“+PID”。
然后同样用strstr函数找到“:”,strstr函数会返回冒号位置的指针。冒号往后的数据就是你收到的数据(可根据串口接收到的长度和冒号位置计算得到实际通讯信息长度)。 |