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/4012/head
parent
75f6f2db30
commit
2eb4048bbe
|
|
@ -904,7 +904,10 @@ void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c){
|
||||||
|
|
||||||
#if DEVICE_I2CSLAVE
|
#if DEVICE_I2CSLAVE
|
||||||
/* restore slave address */
|
/* 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
|
#endif
|
||||||
|
|
||||||
/* Keep Set event flag */
|
/* Keep Set event flag */
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue