diff --git a/os/hal/platforms/STM32/i2c_lld.c b/os/hal/platforms/STM32/i2c_lld.c index 8aaf3f646..dda47fb45 100644 --- a/os/hal/platforms/STM32/i2c_lld.c +++ b/os/hal/platforms/STM32/i2c_lld.c @@ -113,6 +113,8 @@ static void i2c_serve_event_interrupt(I2CDriver *i2cp) { // "wait" BTF bit in status register if ((i2cp->id_state == I2C_MWAIT_TF) && (i2cp->id_i2c->SR1 & I2C_SR1_BTF)){ + //if ((i2cp->id_state == I2C_MWAIT_TF) && ((i2cp->id_i2c->SR1 & I2C_SR1_RXNE) || (i2cp->id_i2c->SR1 & I2C_SR1_TXE))){ + i2cp->id_i2c->SR1 &= (~I2C_SR1_BTF); i2cp->id_slave_config->id_callback(i2cp, i2cp->id_slave_config); return; }