mirror of https://github.com/ARMmbed/mbed-os.git
Merge pull request #14668 from ikmdani/fix_i2c_read_13967
Driver: I2C: STM32F2/STM32F4/STM32L1: Fix alternate i2c read.pull/14665/head
commit
10a2da9b5e
|
@ -122,7 +122,7 @@ struct i2c_s {
|
|||
PinName scl;
|
||||
IRQn_Type event_i2cIRQ;
|
||||
IRQn_Type error_i2cIRQ;
|
||||
uint8_t XferOperation;
|
||||
uint32_t XferOperation;
|
||||
volatile uint8_t event;
|
||||
#if DEVICE_I2CSLAVE
|
||||
uint8_t slave;
|
||||
|
|
|
@ -106,7 +106,7 @@ struct i2c_s {
|
|||
int scl_func;
|
||||
IRQn_Type event_i2cIRQ;
|
||||
IRQn_Type error_i2cIRQ;
|
||||
uint8_t XferOperation;
|
||||
uint32_t XferOperation;
|
||||
volatile uint8_t event;
|
||||
#if DEVICE_I2CSLAVE
|
||||
uint8_t slave;
|
||||
|
|
|
@ -195,6 +195,10 @@ static I2C_HandleTypeDef *i2c_handles[I2C_NUM];
|
|||
#define FLAG_TIMEOUT ((int)0x1000)
|
||||
#endif
|
||||
|
||||
#ifdef I2C_IP_VERSION_V1
|
||||
#define I2C_STATE_NONE ((uint32_t)(HAL_I2C_MODE_NONE))
|
||||
#endif
|
||||
|
||||
/* Declare i2c_init_internal to be used in this file */
|
||||
void i2c_init_internal(i2c_t *obj, const i2c_pinmap_t *pinmap);
|
||||
|
||||
|
@ -1159,7 +1163,9 @@ void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *hi2c)
|
|||
/* Get object ptr based on handler ptr */
|
||||
i2c_t *obj = get_i2c_obj(hi2c);
|
||||
struct i2c_s *obj_s = I2C_S(obj);
|
||||
|
||||
#ifdef I2C_IP_VERSION_V1
|
||||
hi2c->PreviousState = I2C_STATE_NONE;
|
||||
#endif
|
||||
/* Set event flag */
|
||||
obj_s->event = I2C_EVENT_TRANSFER_COMPLETE;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue