请问各位高手高手高高手
因为最近在研究树莓派上用i2c 读取 mpu9250
用了 smbus.i2c.read_block_data
读出来的资料我用print:
[255, 91, 255, 136, 3, 191]
而正确的值是 -164, -119, 959
也就是要先把每两组数字,比如说第一组: 255, 91,各别转成16进位: FF, 5B
然后再把 FF5B 转换成十进制 65371,然后再用65535去减
目前小弟就是先用大量的read_block_data,取得大量
类似[255,91,255,136,3,191]这样的lsit资料,再另外用hex()写程式解码
但是感觉这样很笨="= 想找更好的函式,直接把16进位数值写成.bin档储存
有查到类似bytes(), bytearray(), 也有人在stackoverflow贴范例CODE:
def splitNumber (num):
lst = []
while num > 0:
lst.append(num & 0xFF)
num >>= 8
return lst[::-1]
with open(fileName, 'br+') as f:
for number in numbers:
f.write(bytes(splitNumber(number)))
但是实在是看不懂QQ
想请问各位高手有没有推荐的写法与函式可以参考呢?