我如何将字节数组从LPSTK-CC1352R温度转换为十进制

问题描述

我尝试使用节点红色和蓝牙连接设置LPSTK-CC1352R启动板。 内置传感器是hdc2080传感器。 我不是电子工程师,所以数据表令我有些困惑。 我说的很对,我通过蓝牙连接到MCU,并每秒获取温度值。不幸的是,我将这些值作为4维十六进制数组获得。

[04 4a d5 41]
[dc 44 d5 41]
[b4 3f d5 41]
[8c 3a d5 41]
...

这是值的示例。

我做了很多尝试,将它们转换为简单的温度值,但没有成功。 我什至发现了一种tutorial,但没有成功。

有人可以帮助我吗?

谢谢:)

解决方法

您必须从右到左对十六进制值进行重新排序,因为最后一个十六进制值没有变化,这意味着它必须是小尾数。

https://en.wikipedia.org/wiki/Endianness#:~:text=Little%2Dendian%20representation%20of%20integers,visualized%2C%20an%20oddity%20for%20programmers

4hex是32位

转换为IEEE-754浮点数:

[41 d5 4a 04] = 26.6611404419
[41 d5 44 dc] = 26.6586227417
[41 d5 3f b4] = 26.6561050415
[41 d5 3a 8c] = 26.6535873413

https://www.h-schmidt.net/FloatConverter/IEEE754.html