DMA的中断

2019-08-13 20:33发布

本帖最后由 Bunny17 于 2017-10-10 11:21 编辑

每次进入中断函数,关闭中断使能,判断是否为我们需要的中断标志,做相应的操作,然后清除标志,重新使能中断,然后不做任何操作,退出中断函数后,DMA是否继续在传输呢,还是需要在中断里面又重新配置一次,开始DMA.
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
13条回答
Bunny17
2019-08-15 00:49
我试了一下,是需要重新开启DMA的,但是如果我只是重新开始DMA,通过串口显示,一直都是一样的数据,难道我的ADC没有重新采样吗,我的ADC也是设置的连续转换模式啊。
while(DMAx->LISR&0X20)
                                {
                                        LED0=!LED0;
                                        DMAx->LIFCR |= 1<<5;                //清除传输完成中断标志
                                       
                                }       
                                Adc_Init();  
                                MYDMA_Enable(DMA2_Stream0,512);
我的程序必须这样才可以连续采集,连续传输,通过串口显示就是正确的不重复的数据。
如果我将Adc_Init(); 改成仅仅
ADC1->CR2|=1<<0;                   //开启AD转换器 使能ADC       
        ADC1->CR2|=1<<30;       //启动规则转换通道
这两行就不可以。

一周热门 更多>