关注DMA初始化的问题

2019-03-24 08:24发布

在dma初始化中,我这样写DMA0CTL |= DMADT_4 + DMASRCINCR_3 + + DMAEN + DMAIE;
可以进入DMA中断

但是在初始化的时候只写这个DMA0CTL |= DMADT_4 + DMASRCINCR_3

然后在执行其他程序后需要进入DMA中断时,再加上DMA0CTL |=+ DMAEN + DMAIE  这个,
发现不能进入中断了,就卡死在 __bis_SR_register(CPUOFF + GIE);这里了
  这是为什么啊?其他程序没有任何地方的改变,整个程序也只有DMA这个中断,各位大神,给点思路吧
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
5条回答
ienglgge
2019-03-24 23:55
下雨天不洗澡 发表于 2017-8-14 21:47
这样就可以了 ,但是这是为什么呢?

DMA的功能,我也是很久前用过。现在手里也没有环境试验。你认真看手册里面有没有,关于初始化顺序的说明。是不是一些配置有限制。不能随便实时更改。当时,我调一个adc和DMA的功能。改一个寄存器的值,折腾半天没有效果。后来,换了一个位置给寄存器赋值,就起作用了。

一周热门 更多>

相关问题

    相关文章