【記錄】DMA

概要

直接存儲器訪問,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操作方法

  1. 使能DMA時鐘
  2. 設置源地址
  3. 設置外設地址
  4. 設置傳輸數據大小
  5. 設置DMA數據流
  6. 啓動DMA

實驗要求

按鍵觸發,將RAM中的數據發送到串口

參考

STM32F3與 F4 系列 Cortex M4 內核編程手冊
STM32F4xxx中文參考手冊
STM32F4xxx英文參考手冊
STM32F4 開發指南(寄存器版)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章