HAL_FMPI2C_Mem_Read_IT() in library "stm32f4xx_hal_fmpi2c.c" claims to be "Read an amount of data in non-blocking mode with Interrupt", yet behaves as a blocking call. Where am I going wrong?
My understanding of a non-blocking function is that the function will return immediately, and it is up to you to use a callback or other method to collect the data. With FreeRTOS it's not difficult.
Yet HAL_FMPI2C_Mem_Read_IT() seems to hang around and reply with a HAL_OK if a device acknowledged the device address or a HAL_ERROR if no Ack is received.
This isn’t the behaviour I expected, and expected a HAL_OK independent of the device responding.