×
单片机 > 单片机程序设计 > 详情

STM32学习之DMAM-M模式

发布时间:2020-05-21 发布时间:
|

由于是M-M模式,所以只能选择DMA2

一、首先应该初始化DMA结构体

1.选择通道DMA_Channel,根据数据流选择对应的通道,

2.选择源数据地址DMA_PeripheralBaseAddr

3.目标地址DMA_Memory0BaseAddr

3.选择传输方向DMA_DIR,根据实际情况有这三种DMA_DIR_PeripheralToMemory        DMA_DIR_MemoryToPeripheral      DMA_DIR_MemoryToMemory  

4.设定待传输数据数目DMA_BufferSize,源数据大小

5.使能源数据地址,目标地址递增,

6.源数据和目标宽度DMA_PeripheralDataSize和DMA_MemoryDataSize,根据需要选择,字节,半字和字

7.选择传输模式DMA_MemoryDataSize,M-M模式只能一次传输,

8.DMA_Priority:软件设置数据流的优先级,有 4 个可选优先级分别为非常高、高、中和低 DMA 优先级只有在多个DMA 数据流同时使用时才有意义  

9.DMA_FIFOModeFIFO 模式使能如果选择存储器到存储器模式(DMA_SxCR 中的 DIR 位为“10”),并且 DMA_SxCR 寄存器中的 EN 位为“1”,则此位由硬件置 1,因为在存储器到存储器配置不能使用直接模式。

10.DMA_FIFOThreshold: FIFO 阈值选择,可选 4 种状态分别为 FIFO 容量的 1/4、1/2、 3/4 和满;  

11.DMA_MemoryBurst:存储器突发模式选择,可选单次模式、 4 节拍的增量突发模

式、 8 节拍的增量突发模式或 16 节拍的增量突发模式

DMA_PeripheralBurst:外设突发模式选择,可选单次模式、 4 节拍的增量突发模
式、 8 节拍的增量突发模式或 16 节拍的增量突发模式,

12.初始化结构体,清除标志位,使能数据传输,检测DMA数据流是否有效并带有超时检测功能  


关键字:STM32  DMAM-M模式

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
Keil(MDK-ARM)系列教程(七)_菜单