STM32 HAL I2S problems
The calls ending with IT start a transfer that happens in the background and calls the transfer complete callback when done. Obviously, since you call it in a for loop, it starts one transfer and the HAL is busy, so further calls to it will fail until done or timeout elapses. You don't check the return value which would tell you it failed. Start a new transfer in the callback or use DMA with double or ring buffer.