cancel
Showing results for 
Search instead for 
Did you mean: 

DMA of I2S

Binge
Associate II

Hi,

I'm debugging H723 with CUbeIDE1.14.0,but the generated code does not work.

no interrupt happened.

Binge_0-1702022000456.png

Binge_1-1702022036702.png

 

 

4 REPLIES 4
Mahmoud Ben Romdhane
ST Employee

Hello @Binge,

First let me thank you for posting.

I suggest that you consult this Wiki Section 2.3.3  , it shows how to enable the interrupt and configure the NVIC using I2C and DMA.

Thanks. 

Mahmoud.

 

1.disable DMA

2.set I2S as half-duplex master transmit,it can send data out

3.set I2S as half-duplex slave receive,it can not receive data.

Binge_0-1702026981637.png

 

Hello @Binge,

If you need to use interrupt process, you should configure the I2Sx interrupt priority and enable the NVIC I2S IRQ handle.

If you need to use DMA process:

Declare a DMA handle structure for the Tx/Rx Stream/Channel.
◦ Enable the DMAx interface clock.
◦ Configure the declared DMA handle structure with the required Tx/Rx parameters.
◦ Configure the DMA Tx/Rx Stream/Channel.
◦ Associate the initialized DMA handle to the I2S DMA Tx/Rx handle.
◦ Configure the priority and enable the NVIC for the transfer complete interrupt on the DMA Tx/Rx
Stream/Channel

You can learn more about the HAL_I2S_Receive_DMA() function on the User Manual:

 Description of STM32H7 HAL and low-layer drivers - User manual.

Thanks.

Hi,

Attachment is my project,please check it for me,I really can't find the problem.