0
В библиотеке SMBus есть еще команды:
read_word_data(addr,cmd)
read_block_data(addr,cmd)
можно попробовать их. А вообще, те устройства, которые я подключал еще помимо вышеуказанного акса (компас, барометр, гироскоп) содержат выходные данные в двух регистрах, например для компаса HMC5883L:
Adress Name
0x03 Data Output X MSB register (8 бит)
0x04 Data Output X LSB register (8 бит)
соответственно, чтобы получить некоторое измеренное значение, в различных мануалах приводится следующая конструкция:
X_MSB = self.d.read_byte_data(0x77, 0x03)
X_LSB = self.d.read_byte_data(0x77, 0x04)
X = (AC1_MSB << 8) | AC1_LSB
В Вашем случае можно попробовать так же.
0
write_byte_data(адрес_устройства, адрес_регистра_куда_пишем, что_пишем)
read_byte_data(адрес_устройства, адрес_регистра_откуда_читаем)