我正在尝试通过串行发送一个4字节的浮点数。 我的代码看起来像这样:
ser.write(b'\xcd') #sending the byte representation of 0.1
ser.write(b'\xcc')
ser.write(b'\xcc')
ser.write(b'\x3d')
但我希望能够发送一个仲裁浮动。
我也希望能够单独检查每个字节,所以这不会例如:
bytes = struct.pack('f',float(0.1))
ser.write(bytes)
因为我想检查每个字节。
我正在使用python 2.7 我怎么能这样做?
答案 0 :(得分:2)
您可以使用struct模块将浮点数打包为二进制数据。然后循环遍历bytearray的每个字节并将它们写入输出。
import struct
value = 13.37 # arbitrary float
bin = struct.pack('f', value)
for b in bin:
ser.write(b)