我正试图通过UART将浮点值发送到PC,并从各自的char数组中重建这些浮点值。我如何将32位浮点值转换为char如下:
float value = 42.83f;
unsigned char *ptr = &value;
并且在Python脚本中接收到的值是:
[236, 81, 43, 66, 4, 42]
如何将此char数组强制转换回42.83f
?
谢谢!
我解码的方式可能很奇怪,但我收到的两个元素比浮点解码所需的多。目前这是我的快捷解决方案:我从列表中弹出最后两个元素,这意味着我还有4个字节而不是6个字节。然后,我使用以下代码来重建浮点值。
print("Processing...")
# process the data block
result_data.pop()
result_data.pop()
bytes_of_result = bytes(result_data)
print(bytes_of_result)
final_value = struct.unpack('f', bytes_of_result)
print(final_value)