假设现在通过串口向单片机发送四个字节的数据:
0xAB,0xBC,0xCD,0xDE
而且这四个数据是循环发送的,间隔是t个ms,就是0xDE发送后,过t个微秒,又开始发送0xAB
设置四个unsigned char A,B,C,D来接收数据
应该怎么保证A收到0xAB,B收到0xBC……
如何避免ABCD收到的字节是错位的,即如何避免B = 0xCD,C = 0xDE,D = 0xAB,A = 0xBC这样的情况?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
假设现在通过串口向单片机发送四个字节的数据:
0xAB,0xBC,0xCD,0xDE
而且这四个数据是循环发送的,间隔是t个ms,就是0xDE发送后,过t个微秒,又开始发送0xAB
设置四个unsigned char A,B,C,D来接收数据
应该怎么保证A收到0xAB,B收到0xBC……
如何避免ABCD收到的字节是错位的,即如何避免B = 0xCD,C = 0xDE,D = 0xAB,A = 0xBC这样的情况?
楼主可以考虑定一个通信协议,前面是帧头,后面依次是四个数,最后是帧尾。
中断服务程序中,判断接收到帧头后,开始接收数据。接收到帧尾后代表一帧数据接收完毕,并可以得到帧的长度。