打印

MG82F6D17的ADC使用DMA不能在DMA中断里再次启动DMA

[复制链接]
2527|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sszxxm|  楼主 | 2020-3-15 22:02 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
我的设计思路是:使用DMA来读取ADC,连续20次,存放在XRAM,中断后,把20个数据累加求一个平均值,存放到另外一个数组,在最后退出DMA中断前,再次启动DMA,就是DMA_Start();这个宏定义。

但是发现在DMA中断里,运行这个宏定义,程序就会乱套,只能在主程序大循环里启动才是正常的结果,但是这样一来,DMA的意义就没有了。

在官方的ADC-DMA方式读取DEMO例程中,也是把这个重启宏定义放在大循环里,测试正常,但是当我把这个重启放到DMA中断程序里,串口输出就乱套了。

具体输出变化,2张图如下。

烦请用过这个ADC-DMA读取的朋友帮忙,谢谢。

ok.PNG (47.62 KB )

ok.PNG

error.PNG (47.86 KB )

error.PNG

使用特权

评论回复
沙发
noctor| | 2020-3-18 13:40 | 只看该作者
中断程序能贴出来看看吗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

25

主题

596

帖子

2

粉丝