概要
直接存儲器訪問,Direct Memory Access,DMA。DMA是一個硬件控制器,負責爲RAM和IO設備開闢單獨的數據傳輸通道,可以將IO寄存器中的數據直接複製到指定的地址RAM中。
而在沒有DMA控制器的系統中,這種IO寄存器中的數據必須由CPU通過通用寄存器複製到RAM中的。
所以,當只是數據傳輸,沒有邏輯處理時,可以考慮使用DMA控制器代替CPU實現RAM和IO之間數據的傳輸。
CPU善於執行邏輯運算,DMA善於數據傳輸,各有所長。
特性:
- 每個控制器有8個數據流,每個數據流有最多支持8個通道
- 數據流間可設置優先級
- 數據傳輸數據長度可設置
- 數據傳輸寬度可設置(通過FIFO緩衝實現)
- 5個事件標誌
配置
通道選擇
DMA數據流
源和目標地址
流配置
可能的DMA流配置
DMA中斷
DMA操作方法
- 使能DMA時鐘
- 設置源地址
- 設置外設地址
- 設置傳輸數據大小
- 設置DMA數據流
- 啓動DMA
實驗要求
按鍵觸發,將RAM中的數據發送到串口
參考
STM32F3與 F4 系列 Cortex M4 內核編程手冊
STM32F4xxx中文參考手冊
STM32F4xxx英文參考手冊
STM32F4 開發指南(寄存器版)