void i2c_slave_mode(i2c_t *obj, int enable_slave) { if (enable_slave) { // set slave mode BW_I2C_C1_MST(obj->instance, 0); i2c_hal_enable_interrupt(obj->instance); } else { // set master mode BW_I2C_C1_MST(obj->instance, 1); } }
void i2c_slave_mode(i2c_t *obj, int enable_slave) { uint32_t i2c_addrs[] = I2C_BASE_ADDRS; if (enable_slave) { // set slave mode BW_I2C_C1_MST(i2c_addrs[obj->instance], 0); I2C_HAL_SetIntCmd(i2c_addrs[obj->instance], true); } else { // set master mode BW_I2C_C1_MST(i2c_addrs[obj->instance], 1); } }