Open Source Software from Katalix Systems.
LibI2C
LIBI2C provides a C API to the Linux I2C subsystem. It is distributed as two components.
- libi2c.so, licensed under the GNU Library Public License.
- Several simple applications, licensed under the GNU Public License.
Online Documentation
The functions provided by LibI2C are listed below.
extern int libi2c_bus_open(int bus_no); extern int libi2c_bus_close(int fd); extern int libi2c_bus_scan(int bus_no, u_int8_t *addrs, int max_devices); extern int libi2c_i2c_read_block(int fd, u_int16_t slaveaddr, int slaveaddr_size, u_int32_t subaddr, int subaddr_size, u_int8_t *data, int len); extern int libi2c_i2c_write_block(int fd, u_int16_t slaveaddr, int slaveaddr_size, u_int32_t subaddr, int subaddr_size, u_int8_t *data, int len); int libi2c_i2c_read_eddc_block(int fd, u_int8_t eddc_seg, u_int16_t slaveaddr, int slaveaddr_size, u_int32_t subaddr, int subaddr_size, u_int8_t *data, int len); int libi2c_i2c_write_eddc_block(int fd, u_int8_t eddc_seg, u_int16_t slaveaddr, int slaveaddr_size, u_int32_t subaddr, int subaddr_size, u_int8_t *data, int len); extern int libi2c_smbus_probe(int fd); extern int libi2c_smbus_read_next_byte(int fd, u_int8_t *result); extern int libi2c_smbus_read_byte(int fd, u_int8_t cmd, u_int8_t *result); extern int libi2c_smbus_read_word(int fd, u_int8_t cmd, u_int16_t *result); extern int libi2c_smbus_read_block(int fd, u_int8_t cmd, u_int8_t *buf); extern int libi2c_smbus_write_next_byte(int fd, u_int8_t value); extern int libi2c_smbus_write_byte(int fd, u_int8_t cmd, u_int8_t value); extern int libi2c_smbus_write_word(int fd, u_int8_t cmd, u_int16_t value); extern int libi2c_smbus_write_block(int fd, u_int8_t cmd, u_int8_t *buf, int buf_len);
Downloads
LibI2C may be downloaded here. http://opensource.katalix.com/libi2c/libi2c-0.12.tar.gz.
Let's Talk!
Resources