28335通过串口发送16位数据到PC。数据位是8位。PC能收到数据,但解析有问题。出现前一个字节高8位与后一个字节低8位组成16位现象。
如待发送数据(28335转成8位送出):0x00ff、0xee00、0x00dd、……
PC接收到:0x00、0xff、0xee、0x00、0x00、0xdd、……
但PC程序读接收缓冲区时,可能刚好从0xff开始读,还原成16位后:0xffee、0x0000……
不知道说明白没有,还请给位大侠给指点一下,这个问题该怎么解决。
要求串口以最大速率,连续不断的传。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
这种情况是上位机的问题
个人觉得9楼和5楼的方法更适合些。比如以两个连续的最大值和最小值表示起始或对齐标志(0x7fff,0x8000,0x7fff,0x8000)。28335发送缓冲区起始4个U16就是这个四个值,在PC缓冲区(char)buf[]中查找这个字符串(7fff80007fff8000)即可。
代价是收发效率降低一些。
一周热门 更多>