查看: 1115|回复: 0
打印 上一主题 下一主题

STM32 ADC多通道DMA是什么时间点启动传输的,

[复制链接]
跳转到指定楼层
沙发
发表于 2015-5-18 16:42:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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中写数据,这样跟多任务一样,对共享资源的访问,没有保证互斥访问,不会出问题吗?
转载


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入中科因仑

本版积分规则

快速回复 返回顶部 返回列表