中科因仑“3+1”工程特种兵精英论坛

标题: STM32 ADC多通道DMA是什么时间点启动传输的, [打印本页]

作者: 张衍波    时间: 2015-5-18 16:42
标题: STM32 ADC多通道DMA是什么时间点启动传输的,
u16 AD_Value[12];  //比如将ADC配置成12通道的,顺序连续转换模式
//开启DMA,并使用它的连续传输模式,
        DMA_InitStructure.DMA_PeripheralBaseAddr = (u32)&ADC1->DR; //DMA外设ADC基地址
        DMA_InitStructure.DMA_MemoryBaseAddr = (u32)&AD_Value; //DMA内存基地址
        DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC; //内存作为数据传输的目的地
        DMA_InitStructure.DMA_BufferSize = 12; //DMA通道的DMA缓存的大小
第一、请问,ADC是转换完成一次,DR数据更新一次,就启动一次DMA传输,将AD_Value的某个单元更新?还是DMA要等待DR更新12次,然后一次性的传输给AD_Value。
第二、我很是担心,拿AD_Value中的数据去做数据计算时,会不会出现DMA刚好也正向AD_Value中写数据,这样跟多任务一样,对共享资源的访问,没有保证互斥访问,不会出问题吗?
转载







欢迎光临 中科因仑“3+1”工程特种兵精英论坛 (http://bbs.enlern.com/) Powered by Discuz! X3.4