mbed library sources. Supersedes mbed-src.
Dependents: Nucleo_Hello_Encoder BLE_iBeaconScan AM1805_DEMO DISCO-F429ZI_ExportTemplate1 ... more
Diff: targets/TARGET_STM/i2c_api.c
- Revision:
- 188:bcfe06ba3d64
- Parent:
- 187:0387e8f68319
- Child:
- 189:f392fc9709a3
--- a/targets/TARGET_STM/i2c_api.c Thu Sep 06 13:40:20 2018 +0100 +++ b/targets/TARGET_STM/i2c_api.c Thu Nov 08 11:46:34 2018 +0000 @@ -590,6 +590,17 @@ #endif // Disable reload mode handle->Instance->CR2 &= (uint32_t)~I2C_CR2_RELOAD; + + // Ensure the transmission is started before sending a stop + if ((handle->Instance->CR2 & (uint32_t)I2C_CR2_RD_WRN) == 0) { + timeout = FLAG_TIMEOUT; + while (!__HAL_I2C_GET_FLAG(handle, I2C_FLAG_TXIS)) { + if ((timeout--) == 0) { + return I2C_ERROR_BUS_BUSY; + } + } + } + // Generate the STOP condition handle->Instance->CR2 |= I2C_CR2_STOP;