继续请教F403A I2S DMA设置问题
上次根据版主的提示,参考例程,写了I2S DMA全双工的代码,配置为SPI2为主接收,I2S2_EXT为从发送,使能MCLK主时钟输出。程序初始化后,MCLK主时钟已经有输出了,设置的弹性DMA通道,SPI2为DMA1通道1,I2S2_EXT为DMA1通道2,同时使能了通道1的传输完成中断。
程序运行后,可以进入通道1的传输完成中断函数,但是问题是不能清除中断标志,导致一直进入中断,造成假死机(其实就是不停地进出中断)。
Debug查看DMA的中断状态寄存器和中断标志清除寄存器,发现清除标志的代码运行了,但是两个寄存器的内容没有变化,导致中断标志清除无效。
还请版主给分析一下,看看问题出在哪里?
I2S的配置代码
Debug调试结果和通道1中断函数
工程代码
音频采样率设置为11.025kHz,理论上采集一次左右声道数据的间隔时间是90us左右,可是Debug测量两次进入通道1传输完成中断的间隔时间为0.45us,基本上就是出来就马上进去了。不知是哪里的原因? 找到问题了,如图所示,DMA收发搞反了。
收发调个个,DMA传输正常了。
页:
[1]