mbed library sources. Supersedes mbed-src.

Dependents:   Nucleo_Hello_Encoder BLE_iBeaconScan AM1805_DEMO DISCO-F429ZI_ExportTemplate1 ... more

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;