AnsweredAssumed Answered

stm32f4xx_hal_i2s_ex seems incomplete - doesn't work

Question asked by fleetwood.mike on Jul 8, 2016
Latest reply on Aug 1, 2016 by fleetwood.mike
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?

Outcomes