OpenEdv-开源电子网

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

关于STM32进制转换计算问题

[复制链接]

1

主题

3

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2018-8-11
在线时间
5 小时
发表于 2018-8-11 09:25:36 | 显示全部楼层 |阅读模式
1金钱
我现在用STM32F103ZET6通信一个电池巡检仪,收到了两个字节的16进制的数值,这个巡检仪发过来的两个字节的16进制需要进行乘除计算后才能得到真正电池电压,求告知如何计算然后在以两个字节的16进制数值表示电池电压发送给给PLC.例:接收到的PH两个字节96,42.需要进行乘除计算公式为(PH*20/65535),计算后得到的数值如何转换为两个字节的16进制。求大神带

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

109

主题

5564

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10572
金钱
10572
注册时间
2017-2-18
在线时间
1914 小时
发表于 2018-8-11 10:52:46 | 显示全部楼层
回复

使用道具 举报

17

主题

194

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1049
金钱
1049
注册时间
2016-9-3
在线时间
158 小时
发表于 2018-8-11 10:54:43 | 显示全部楼层
直接(u16)将结果强制转换就行了
回复

使用道具 举报

31

主题

1955

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4521
金钱
4521
注册时间
2018-5-11
在线时间
946 小时
发表于 2018-8-11 11:25:37 | 显示全部楼层
你得确定你确实理解了工作原理,
PLC要的结果究竟是什么?
从你给的公式来看,计算得出的结果是电压值0-20,  
小数点要不要?  如果只取整的话,
这么小的值用得着两个字节的16进制吗?
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2018-8-11
在线时间
5 小时
 楼主| 发表于 2018-8-11 11:27:52 | 显示全部楼层
warship 发表于 2018-8-11 11:25
你得确定你确实理解了工作原理,
PLC要的结果究竟是什么?
从你给的公式来看,计算得出的结果是电压值0- ...

需要小数点,我传给PLC需要16进制数据传输
回复

使用道具 举报

31

主题

1955

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4521
金钱
4521
注册时间
2018-5-11
在线时间
946 小时
发表于 2018-8-11 11:42:55 | 显示全部楼层
AHDDFG 发表于 2018-8-11 11:27
需要小数点,我传给PLC需要16进制数据传输

需要不需要小数点事关重大,
不是你想当然的,
必须拿到PLC的相关文档
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复

使用道具 举报

29

主题

338

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1181
金钱
1181
注册时间
2018-4-13
在线时间
170 小时
发表于 2018-8-14 19:30:27 | 显示全部楼层
首先你要了解下传过来的两个字节代表什么数据,是整数还是浮点数,看样子应该是整数,两字节的浮点数实在太不够精度了。
内部做计算时当然要采用浮点数计算了,所示得到的结果是浮点数,不止两个字节。
最后,你需要把结果变成通讯所需的两个字节,如果需要整数(估计是,不过楼上已经问过回答是需要小数点的,这个。。。),那就数据转换了。
得到整数就传过去好了。注意PLC是否需要调换高低字节。一般PLC是高字节在前面的。
如果需要浮点数的话我建议你考虑采用4字节表示一个数据,这样直接用32位浮点数来通讯和计算就可以了,也不用转换数据类型,也满足精度要求。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-18 16:27

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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