I2C IT RX Fails with a stopped SCL, but the Rx interrupt still fires.
I have an STM32WB design using I2C to get 6 bytes from a BMI0888 every 50ms (triggered by an external interrupt). The interrupt sets a flag in my main loop to go get the data. The devices first requires you to write the desired register, then read the 6 bytes. If I use back to back calls to HAL_I2C_Master_Transmit followed by HAL_I2C_Master_Receive, it works great. See figure 1 below. That will happen every 50ms.
I am now trying to do this using the interrupt versions of the functions. If I try and use HAL_I2C_Master_Transmit_IT and HAL_I2C_Master_Transmit_IT. I again use flags to inform my main loop what to do. The external interrupt flags the loop to perform the transmit, then the HAL_I2C_MasterTxCpltCallback informs the main loop to perform the receive, and then HAL_I2C_MasterRxCpltCallback tells the main loop the data is ready. I get all of these interrupts, however the data isn't actually read. See figure 2 below where SCL stops high.
Blocking:

Interrupt:

