Why does the I2C state remain in HAL_I2C_STATE_BUSY_TX when an access is completed.
I am doing a DMA based I2C transmit using HAL_I2C_Master_Transmit_DMA and am seeing an issue with the state of the I2C. The transfer completes as expected as confirmed using an oscilloscope on the pins. However, the state of the I2C gets switched to HAL_I2C_STATE_BUSY_TX and remains that way. As such any subsequent transaction returns HAL_BUSY and doesn't complete. The I2C ISR register has only TXE and STOPF asserted, which I think is expected behaviour. The BUSY bit is not set, so I think the hardware is fine and ready for another transaction, but the HAL is out of synch with it. What clears the busy status when a DMA transfer is done? Thanks for any insights into this issue.