2019-05-10 05:37 AM
Hi,
I have noticed change in HAL_I2C_EV_IRQHandler that breaks I2C communication.
In STM32Cube_FW_F4_V1.23.0 in stm32f4xx_hal_i2c.c@3379
if((sr2itflags & I2C_FLAG_TRA) != RESET)
was changed to
else if (I2C_CHECK_FLAG(sr2itflags, I2C_FLAG_TRA) != RESET)
In STM32Cube_FW_F4_V1.24.0 in stm32f4xx_hal_i2c.c@4569
What is the purpose of adding else there? For me it looks like a bug but I didn't analyze whole I2C master transfer procedure. Anyway after clearing ADDR flag in SR1 register SR2 register is not processed at all and data are not sent.
Could you confirm if this is a mistake?