mirror of https://github.com/ARMmbed/mbed-os.git
STM32: Correct I2C master error handling
If I2C slave support is included, then the I2C error handler would always reset the I2C address, resulting in incorrectly changing the I2C state to listen for a controller configured as I2C master. This change conditionalizes the address setting to only occur if the controller was in slave mode when the error occurred.pull/4134/head
parent
79c79a4347
commit
72c7cedf12
|
@ -904,7 +904,10 @@ void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c){
|
|||
|
||||
#if DEVICE_I2CSLAVE
|
||||
/* restore slave address */
|
||||
i2c_slave_address(obj, 0, address, 0);
|
||||
if (address != 0) {
|
||||
obj_s->slave = 1;
|
||||
i2c_slave_address(obj, 0, address, 0);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Keep Set event flag */
|
||||
|
|
Loading…
Reference in New Issue