STM32F0xx_HAL_I2c.c: I2C_RequestMemoryRead not interrupt based
Hello,
I am currently using a STM32F030CCT6 with the STM32F0xx_HAL_DRIVER generated by CubeMx. The version of the driver/cube is STM32Cube_FW_F0_V1.10.0.
In my program, I have a low priority task that calls HAL_I2C_Mem_Read_IT. This function is interrupt based and therefore I should have no problem completing the I2C request. However, once in a while I get a timeout. I investigated that timeout and found out that my task get switch during the call to HAL_I2C_Mem_Read_IT.
Going into HAL_I2C_Mem_Read_IT, I see that this function is called I2C_RequestMemoryRead. This function is responsible to send the device address and the memory address. When looking into the implementation I found that this function is not interrupt based!
I get a timeout when the task switch during I2C_RequestMemoryRead!
I was wondering if there was a particular reason why the function I2C_RequestMemoryRead is not interrupt based? Is this wanted? Is there a driver that implements I2C_RequestMemoryRead with interrupts?
Thank you!
