TI中文支持网
TI专业的中文技术问题搜集分享网站

TM4C123通过UART接收多个字节的问题

假设现在通过串口向单片机发送四个字节的数据:

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这样的情况?

Joey Mao:

你可以将要发送的数据存到一个数组,然后一个循环以一定的间隔发送这个数组的内容,接收也按发送的顺序存入一个数组,应该可以保证接收到的和发送的数据是一致的

xyz549040622:

我觉得,加个校验判断更稳妥,因为时间毕竟是有误差,延时和定时器都有误差的,时间长了肯定会出错,串口发送数据的时候,0xAB,0xBC,0xCD,0xDE这四个数据前面加数据地址,然后在MCU中判断接收

Michael Sun:

楼主可以考虑定一个通信协议,前面是帧头,后面依次是四个数,最后是帧尾。

中断服务程序中,判断接收到帧头后,开始接收数据。接收到帧尾后代表一帧数据接收完毕,并可以得到帧的长度。

赞(0)
未经允许不得转载:TI中文支持网 » TM4C123通过UART接收多个字节的问题
分享到: 更多 (0)