4.传输模式
DMA控制器的传输模式有循环模式和普通模式两种。循环模式用于处理循环缓冲区和连续的数据传输。每轮传输结束时,数据传输的配置会自动地更新为初始状态,DMA数据传输会连续不断地进行。普通模式是指在DMA数据传输结束时,DMA通道被自动关闭,进一步的DMA请求将不被响应。
DMA数据传输有3种方式,即内存到内存、内存到外设、外设到内存,分别如图10.5、图10.6、图10.7所示。

图10.5 内存到内存数据传输
(https://www.daowen.com)
图10.6 内存到外设数据传输

图10.7 外设到内存数据传输
DMA首先要初始化,建立源地址和目标地址,设置数据宽度和数据量大小。启动触发后,DMA开始传输。每完成一次传输,计数器DMA_CNDTR执行减计数操作,直到完成所有传输。