knrt.net
当前位置:首页 >> stm32的DmA需要每次都初始化吗 >>

stm32的DmA需要每次都初始化吗

下面代码是一个标准DMA设置,当然实际应用中可根据实际情况进行裁减: DMA_DeInit(DMA_Channel1); 上面这句是给DMA配置通道,根据ST提供的资料,STM3210Fx中DMA包含7个通道(CH1~CH7),也就是说可以为外设或memory提

不需要的,一次就可以了.但你需要设置为扫描模式,单次模式需要手动启动ADC转换.

肯定不是的,找个开发的例子,好好看看

看一下这句是不是你需要的.DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;

……这本来就是将一个内存块的地址赋给“起始地址”这个变量……赋地址的操作遍地都是,等你多看些程序,习惯了自然也就不会大惊小怪了.

失能DMA,重写传输个数与内存地址,再使能DMA即可

是的.但准确点说,应该是要停止DMA的传输行为(注意不是关闭,一般关闭指得是DMA时钟去使能),然后重新配置(可以是部分参数),然后在需要时启动传输. 其实所有编程行为,无论软硬都要遵守一个原则就是.所有操作必须在确定的已知状态下开始,完成后必须进入确定的已知状态.确定的已知状态,其中包括 “确定的未知状态”.

第二个方法是可行的,不过需要你在DMA中断里改变目的地址.在中断里首先禁止DMA,接着修改目的地址,然后再使能DMA.

可以看下STM32F10x常见应用解析.pdf 将DMA设置成循环模式.

不占用cpu 提高数据吞吐量

zxwg.net | qmbl.net | pdqn.net | hyfm.net | ltww.net | 网站首页 | 网站地图
All rights reserved Powered by www.knrt.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com