mbed library sources. Supersedes mbed-src.
Dependents: Nucleo_Hello_Encoder BLE_iBeaconScan AM1805_DEMO DISCO-F429ZI_ExportTemplate1 ... more
Diff: targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_i2c.c
- Revision:
- 170:19eb464bc2be
- Parent:
- 167:e84263d55307
- Child:
- 187:0387e8f68319
--- a/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_i2c.c Wed Jul 19 17:31:21 2017 +0100 +++ b/targets/TARGET_STM/TARGET_STM32F1/device/stm32f1xx_hal_i2c.c Thu Aug 03 13:13:39 2017 +0100 @@ -1462,7 +1462,7 @@ /* Generate Start */ hi2c->Instance->CR1 |= I2C_CR1_START; } - else + else if(Prev_State == I2C_STATE_MASTER_BUSY_RX) // MBED { /* Generate ReStart */ hi2c->Instance->CR1 |= I2C_CR1_START; @@ -1564,7 +1564,7 @@ /* Generate Start */ hi2c->Instance->CR1 |= I2C_CR1_START; } - else + else if(hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) // MBED { /* Enable Acknowledge */ hi2c->Instance->CR1 |= I2C_CR1_ACK; @@ -4008,7 +4008,7 @@ /* Enable Pos */ hi2c->Instance->CR1 |= I2C_CR1_POS; - + /* Disable BUF interrupt */ __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_BUF); } @@ -4078,6 +4078,12 @@ { /* Disable Acknowledge */ hi2c->Instance->CR1 &= ~I2C_CR1_ACK; + + if((CurrentXferOptions == I2C_NEXT_FRAME) || (CurrentXferOptions == I2C_FIRST_FRAME)) + { + /* Generate ReStart */ + hi2c->Instance->CR1 |= I2C_CR1_START; + } } else {