MCU串口多字节数据解析问题

2019-07-24 16:11发布

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……
不知道说明白没有,还请给位大侠给指点一下,这个问题该怎么解决。
要求串口以最大速率,连续不断的传。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
warcraftiii
1楼-- · 2019-07-25 14:28
28335的例程?官方好像只是SCI模块单字节的收发演示。现在28335发送8位字节数据,PC接收,都是对的。就是PC收到数据后,无**确还原为原始的16位数据
huyuezhan
2楼-- · 2019-07-25 14:37
 精彩回答 2  元偷偷看……
dirtwillfly
3楼-- · 2019-07-25 18:34
warcraftiii 发表于 2015-11-19 16:50
28335的例程?官方好像只是SCI模块单字节的收发演示。现在28335发送8位字节数据,PC接收,都是对的。就是PC ...

这种情况是上位机的问题
warcraftiii
4楼-- · 2019-07-25 23:44
感谢版主大人和各位的回复!
个人觉得9楼和5楼的方法更适合些。比如以两个连续的最大值和最小值表示起始或对齐标志(0x7fff,0x8000,0x7fff,0x8000)。28335发送缓冲区起始4个U16就是这个四个值,在PC缓冲区(char)buf[]中查找这个字符串(7fff80007fff8000)即可。
代价是收发效率降低一些。
android2
5楼-- · 2019-07-26 03:09
用官方的例程运行一下试试

一周热门 更多>