0
私はPythonを初めて使用しており、現在、Raspberry PiのI2Cを使用してデジタルコンパスから2バイトを読み込んでいます。 MSB値およびLSB値は、例えばアレイに格納されている。
a = [0x07, 0xFF]
Pythonで2つの16進値を結合する
私は、このようなどのように私はこれをやって行くだろう
b == 0x07FF
として一つの変数にこれらの2バイトに参加したいと思いますか?
私はそれが256でMSBを乗算し、LSBに追加するのと同じくらい簡単だろうと思ったが、私は入れません:この上の任意の助けをいただければ幸いです:)
私を
「はIndexError範囲外のリストインデックスを」コードは次のとおりです。
import smbus
import time
bus = smbus.SMBus(1)
addr = 0x1E
bus.write_byte_data(addr, 0x00, 0x70)
bus.write_byte_data(addr, 0x01, 0xA0)
bus.write_byte_data(addr, 0x02, 0x00)
time.sleep(0.006)
for i in range(0,10):
x = bus.read_i2c_block_data(addr,0x03,2)
y = bus.read_i2c_block_data(addr,0x07,2)
z = bus.read_i2c_block_data(addr,0x05,2)
xval = 256*x[2]+x[1]
print x, y, z
print xval
time.sleep(1)
print 'exiting...'
私が手にエラーがある:コメントで指摘したように
Traceback (most recent call last):
File "compass2.py", line 18, in <module>
xval = 256*x[2]+x[1]
IndexError: list index out of range
Pythonのインデックスは0変更から始まり 'XVAL = 256 * x [2] + x [1] '〜' xval = 256 * x [1] + x [0] ' – eyllanesc