我正在使用read_i2c_block_data函数从IC2设备检索数据字节。在这个数据块中是我想要显示的带符号的16位值。我可以使用以下内容正确打印出值:
print ("PC12 : %d mW" % int.from_bytes((return_data[5],return_data[6]), byteorder='little', signed=True))
尽管如此,我一直在尝试使用以下内容打印出值,但这不起作用,我不知道为什么。我很好奇为什么我不能让它工作。
print ("PC12 : %d mW" % int.from_bytes(return_data[5:6], byteorder='little', signed=True))
有谁知道我做错了什么?我想我可以在from_bytes函数中指定范围。
谢谢, 标记
答案 0 :(得分:2)
return_data[5:6]
返回一个数组,该数组由索引为5的单个元素组成:
>>> return_data = b'\00\01\02\03\04\05\06'
>>> return_data[5:6]
b'\x05'
由于您要转换16位整数,因此需要使用return_data[5:7]
。