diff --git a/I2C_serial_pi.py b/I2C_serial_pi.py index d928b77db33c00b86e96b3bf84ff1314a6515011..422b64689920c9860c0b4bdd7e6feed130d637b0 100644 --- a/I2C_serial_pi.py +++ b/I2C_serial_pi.py @@ -22,19 +22,20 @@ import smbus import sys from time import * -DEBUG=False +DEBUG = True + class I2C: - def __init__(self, ADDRESS='040'): + def __init__(self, ADDRESS='040',BUSNR=3): self.I2C_Address = ADDRESS - self.BUS_NR = 1 - bus = smbus.SMBus(self.BUS_NR) - + self.bus_nr = BUSNR def read_bytes(self, register, bytes_to_read=2): + bus = smbus.SMBus(self.bus_nr) try: - ret_value = bus.read_i2c_block_data(self.I2C_Address, register, bytes_to_read) + rd_value = bus.read_i2c_block_data(self.I2C_Address, register, bytes_to_read) + ret_value = hex(rd_value[0])[2:] ret_ack = 1 except IOError, err: ret_ack = 0 @@ -45,6 +46,7 @@ class I2C: def read_last_reg(self, bytes_to_read): + bus = smbus.SMBus(self.bus_nr) ret_value=[] for cnt in bytes_to_read: try: @@ -58,8 +60,9 @@ class I2C: return ret_ack,ret_value def write_bytes(self, register, data): + bus = smbus.SMBus(self.bus_nr) try: - bus.write_i2c_block_data(self.I2C_Address, register, data) + bus.write_i2c_block_data(self.I2C_Address, register, [data]) ret_ack = 1 except IOError, err: ret_ack = 0 @@ -69,6 +72,7 @@ class I2C: return ret_ack def write_pointer(self, register): + bus = smbus.SMBus(self.bus_nr) try: ret_value = bus.read_i2c_block_data(self.I2C_Address, register, 1) ret_ack = 1