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条回答
dirtwillfly
1楼-- · 2019-07-24 20:17
楼主的串口通讯没有起始位么?
打着哈欠说
2楼-- · 2019-07-25 00:01
数据类型的处理中出现的问题。仔细单步调试看看
warcraftiii
3楼-- · 2019-07-25 03:11
 精彩回答 2  元偷偷看……
baimiaocun2015
4楼-- · 2019-07-25 06:05
这个是需要根据一定的协议进行解析的吧
warcraftiii
5楼-- · 2019-07-25 10:44
协议怎么搞,能说下思路吗?
数据是16位AD采上来的,要连续传到PC。0x0000 - 0xffff都是有效数据。
搞成socket那种,先建立连接,再传数据。太麻烦的。

pc串口程序自发自收,发一遍,总是收到两遍,错误也没找到......
精彩人生sun
6楼-- · 2019-07-25 11:24
warcraftiii 发表于 2015-11-19 10:59
回2楼:“起始位”指什么,是每帧中、8个数据位前面那一位么? 还是指28335发送的16位数据应该添加自己的起 ...

好奇怪的问题,估计涉及到指令的区别了吧。用官方的例程试试

一周热门 更多>