STM429,I2S双缓冲,无法进入DMA中断。

2019-07-20 21:44发布

音乐播放器实验,把这个实验移植到ucosIII下,不过不是读出来的音乐文件,
而是用sin函数产生正弦波数据,采样频率44100,I2S模式,DMA双缓冲。
但是启动后,任务工作工正常,只是一直不进入DMA中断,能帮忙看看吗?


DMA配置


111.png

DMA中断服务函数,判断哪个缓冲在使用,填充未使用的缓冲
222.png

DMA初始化
333.png

在任务代码中启动dma传输
444.png


启动DMA
555.png


工程源码
MorseDemoF4.rar (3.3 MB, 下载次数: 456) 2016-6-7 18:52 上传 点击文件名下载附件
工程源码




友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
GGaFish
1楼-- · 2019-07-21 02:35
这个dma双缓冲的代码问题我调试了将近两个月了。 从学习wav文件格式,i2s标准,双缓冲机制,搞到现在,这个不进中断的问题卡住我1个多月了, 感觉像是低级错误,但是自己看也看不出啥毛病, 用printf("%d",DMA_GetCurrDataCounter(DMA1_Stream4));显示的dma始终是缓冲区大小,应该是dma没有启动, 猜测是dma没有配置正确。 我现在接的外部器件是pcm1770扩展模块,模块是否正常工作还不清楚,但是I2S数据是单向的,应该不会影响stm32自身的dma工作。
正点原子
2楼-- · 2019-07-21 08:10
 精彩回答 2  元偷偷看……
GGaFish
3楼-- · 2019-07-21 11:25
还不会做仿真,我的时429的板子,库函数跟407的不太一样。
总之到现在还没有调试成功。

话说回来,仿真如何做,有教程吗。
GGaFish
4楼-- · 2019-07-21 14:18
 精彩回答 2  元偷偷看……
正点原子
5楼-- · 2019-07-21 15:04
GGaFish 发表于 2016-6-12 13:55
I2S配置不正确?
DMA配置不正确?
可以能帮忙看看工程代码吗?

参考下我们407的代码就可以了。
不难的啊。

一周热门 更多>