0
저는 파이썬에 처음 익숙하며 현재 라스베리 파이의 I2C를 사용하여 디지털 나침반에서 2 바이트를 읽습니다. MSB 및 LSB 값은 어레이에 저장된다.
a = [0x07, 0xFF]
파이썬에서 두 개의 16 진수 값 합치기
나는 하나 개의 변수로이 두 바이트에 가입 하시겠어요 같은
내가이 일에 대해 어떻게 갈 것이라고 b == 0x07FF
로?
는 나는 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...'
오류 : 코멘트에 언급 한 바와 같이, 파이썬, 인덱싱 코드에서 1로, 0에 있지 시작
Traceback (most recent call last):
File "compass2.py", line 18, in <module>
xval = 256*x[2]+x[1]
IndexError: list index out of range
파이썬 인덱스에 0에서 시작'의 경우 xval = 256 * x [2] + x [1]'~'xval = 256 * x [1] + x [0]' – eyllanesc