NO IMAGE

python-smbus(内容が古くなりましたが記録として残します)

  • 2019年4月24日
  • 2019年4月24日
  • IoT
  • 539view
IoT NO IMAGE

PythonからI2Cを制御する際の、コマンド(ファンクション)の一覧を備忘録として残しておきます。SMBusとはI2Cのサブセットです。

Using the I2C Interface

以下、addressは7bit、つまりread/write bitは含まれません。

SMbus Functions

long write_quick(int addr) R/W bitを出すのみ

long read_byte(int addr) デバイスアドレス指定なしに1byte読む

long write_byte(int addr, char val) デバイスアドレス指定なしに1byte書く

long read_byte_data(int addr, char cmd)

long write_byte_data(int addr, char cmd, char val)

long read_word_data(int addr, char cmd)

long write_word_data(int addr, char cmd, int val)

long process_call(int addr, char cmd, int val)

long[] read_block_data(int addr, char cmd)

write_block_data(int addr, char cmd, long vals[])

long[] block_process_call(int addr, char cmd, long vals[])

I2C Access Funstions

long[] read_i2c_block_data(int addr, char cmd)

write_i2c_block_data(int addr, char cmd, long vals[])

Code Example

#!/usr/bin/python

import smbus

bus = smbus.SMBus(1)    # 0 = /dev/i2c-0 (port I2C0), 1 = /dev/i2c-1 (port I2C1)

DEVICE_ADDRESS = 0x15      #7 bit address (will be left shifted to add the read write bit)
DEVICE_REG_MODE1 = 0x00
DEVICE_REG_LEDOUT0 = 0x1d

#Write a single register
bus.write_byte_data(DEVICE_ADDRESS, DEVICE_REG_MODE1, 0x80)

#Write an array of registers
ledout_values = [0xff, 0xff, 0xff, 0xff, 0xff, 0xff]
bus.write_i2c_block_data(DEVICE_ADDRESS, DEVICE_REG_LEDOUT0, ledout_values)
NO IMAGE
最新情報をチェックしよう!