OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5206|回复: 5

C#数据进制转换求助

[复制链接]

20

主题

108

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
375
金钱
375
注册时间
2016-9-26
在线时间
59 小时
发表于 2017-4-26 11:30:33 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 单井老头 于 2017-4-26 11:31 编辑

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

最佳答案

查看完整内容[请看2#楼]

[mw_shl_code=csharp,true]private void Form1_Load(object sender, EventArgs e) { byte[] UsefulData = new byte[10]; UsefulData[0] = 0; UsefulData[1] = 0x32; UsefulData[2] = 0x01; UsefulData[3] = 0x18; short pitch = (short)(((short)UsefulData[0]
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

7

主题

333

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1838
金钱
1838
注册时间
2012-7-16
在线时间
504 小时
发表于 2017-4-26 11:30:34 | 显示全部楼层
[mw_shl_code=csharp,true]private void Form1_Load(object sender, EventArgs e)
{
    byte[] UsefulData = new byte[10];
    UsefulData[0] = 0;
    UsefulData[1] = 0x32;
    UsefulData[2] = 0x01;
    UsefulData[3] = 0x18;


    short pitch = (short)(((short)UsefulData[0] << 8) + UsefulData[1]);
    short roll = (short)(((short)UsefulData[2] << 8) + UsefulData[3]);

}

[/mw_shl_code]

微信截图_20170427103247.png
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2017-4-27 00:57:55 | 显示全部楼层
帮顶
回复

使用道具 举报

20

主题

108

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
375
金钱
375
注册时间
2016-9-26
在线时间
59 小时
 楼主| 发表于 2017-4-27 08:56:02 | 显示全部楼层
自己默默顶一下
回复

使用道具 举报

7

主题

333

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1838
金钱
1838
注册时间
2012-7-16
在线时间
504 小时
发表于 2017-4-27 10:35:13 | 显示全部楼层
转换格式要搞对,帮你到这了。
回复

使用道具 举报

20

主题

108

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
375
金钱
375
注册时间
2016-9-26
在线时间
59 小时
 楼主| 发表于 2017-4-28 10:18:27 | 显示全部楼层
hyghyg1234 发表于 2017-4-27 10:35
转换格式要搞对,帮你到这了。

非常感谢,请受小弟一拜
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 04:47

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表