cancel
Showing results for 
Search instead for 
Did you mean: 

Changes in I2C IRQ handler

JNowa.15
Associate

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?

0 REPLIES 0