enum i2c_master_rc i2c_master_write(uint32_t i2c, const uint8_t *data, size_t data_size)
write data over I2C
enum i2c_master_rc i2c_master_read(uint32_t i2c, uint8_t *data, size_t data_size)
read data over I2C
enum i2c_master_rc i2c_master_address_write(uint32_t i2c, uint16_t slave, bool address_10bit, const uint8_t *address, size_t address_size, const uint8_t *data, size_t data_size)
write data at specific address on an I2C memory slave
void i2c_master_setup(uint32_t i2c, uint16_t frequency)
setup I2C peripheral
void i2c_master_reset(uint32_t i2c)
reset I2C peripheral, fixing any locked state
void i2c_master_release(uint32_t i2c)
release I2C peripheral
a start or stop condition is already in progress
enum i2c_master_rc i2c_master_slave_read(uint32_t i2c, uint16_t slave, bool address_10bit, uint8_t *data, size_t data_size)
read data from slave device
enum i2c_master_rc i2c_master_slave_write(uint32_t i2c, uint16_t slave, bool address_10bit, const uint8_t *data, size_t data_size)
write data to slave device
enum i2c_master_rc i2c_master_start(uint32_t i2c)
send start condition
enum i2c_master_rc i2c_master_stop(uint32_t i2c)
sent stop condition
slave is not read (previous operations has been nacked)
bool i2c_master_check_signals(uint32_t i2c)
check if SDA and SCL signals are high
enum i2c_master_rc i2c_master_select_slave(uint32_t i2c, uint16_t slave, bool address_10bit, bool write)
select I2C slave device
i2c_master_rc
I2C return codes.
enum i2c_master_rc i2c_master_address_read(uint32_t i2c, uint16_t slave, bool address_10bit, const uint8_t *address, size_t address_size, uint8_t *data, size_t data_size)
read data at specific address from an I2C memory slave