现在遇到一个问题,下位机发送两个数据到上位机,上位机可以正确按字节接受到了。剩余的是将两个字节数据合并成一个整数,用于波形显示。具体如下
单片机要发送的数据是:
[C#]
纯文本查看 复制代码
short pitch=50,roll=280
上位机按照十六进制接收数据如下:
[C#]
纯文本查看 复制代码
00 32 01 18
这个结果是正确的。
我将每两个字节数据拼接成一个C#里面的Int 32 类型的数据,但结果显示错误:
[C#]
纯文本查看 复制代码
00 32 01 18 //上位机接收到的十六进制数据69632 1024//数据拼接后显示的数据
采用的拼接方法如下:
[C#]
纯文本查看 复制代码
pitch = (UsefulData[0] << 8 + UsefulData[1]);//UsefulData是上位机解析数据帧之后存储的有效数据数组 roll = (UsefulData[2] << 8 + UsefulData[3]);
单片机发送数据是高低位是高字节在前,所以这个原因被排除了,那请问还可能是其他什么原因呢?