Question
stm32f4xx_hal_i2s_ex seems incomplete - doesn't work
Posted on July 08, 2016 at 18:04
I'm developing an audio application using STM32F427, using I2S port 3 in ''full-duplex'' mode to interface to ADC and DAC.
Trying to use the non-blocking-interrupt method, as I don't want to use DMA and there are several related functions in the same RTOS thread that I don't want to block. On trying to trace the interrupt handling code, as far as I can see, the function I2SEx_TransmitReceive_IT doesn't contain any callback calls in the I2S_MODE_MASTER_TX or I2S_MODE_SLAVE_TX section. There are callbacks in the RX section, but they leave the peripheral in HAL_I2S_STATE_BUSY - which will cause any call to HAL_I2SEx_TransmitReceive_IT (in order to re-start transmission/reception) to fail. It also leaves the macro __HAL_LOCK(hi2s) in the locked state. I have searched through this forum history and can't see any solution. I did see a related question, but the poster got round it by using DMA. I'm using code originally created by CUBE FW.F4_V1.11.0, which uses HAL version 1.4.4. I downloaded the latest CUBE (version 1.12), with HAL version 1.5.0 - but the included code is identical. Any chance of some fully complete and working HAL files? Or have I missed something?