diff --git a/cpu/stm32f1/periph/i2c.c b/cpu/stm32f1/periph/i2c.c index f91684766..a43dfa49f 100644 --- a/cpu/stm32f1/periph/i2c.c +++ b/cpu/stm32f1/periph/i2c.c @@ -451,6 +451,8 @@ static inline void _stop(I2C_TypeDef *dev) while (!(dev->SR1 & I2C_SR1_BTF)); /* send STOP condition */ dev->CR1 |= I2C_CR1_STOP; + /* wait until transmission is complete */ + while (dev->SR2 & I2C_SR2_BUSY); } #if I2C_0_EN