Skip to main content
JNowa.15
Visitor II
May 10, 2019
Question

Changes in I2C IRQ handler

  • May 10, 2019
  • 0 replies
  • 441 views

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?

This topic has been closed for replies.