STM32學習筆記7 --------- DMA(直接存儲器訪問)

DMA主要功能:

  • 傳輸數據,但不需要佔用CPU。
  • 數據支持從外設到存儲器或者從存儲器到存儲器(SRAM或Falsh)

DMA控制器獨立於內核,包含DMA1和DMA2,其中DMA1有7個通道,DMA2有5個通道,可看成傳輸數據的管道,DMA2只存在於大容量的單片機中。

從編程的角度看,只需掌握以下3部分即可:
1.DMA請求

外設要通過DMA來傳輸數據,必須向DMA控制器發送DMA請求。不同的DMA控制器的通道對應不同的外設請求。

在這裏插入圖片描述
2.通道

每個通道雖然可以接受多個外設請求,但是同一時間只能接受一個,不能同時接收多個。

3.仲裁器

響應先後順序由仲裁器管理。分爲兩個階段:

  • 1.軟件階段,可以在DMA_CCRx寄存器中設置,有4個等級:非常高、高、中和低
  • 2.硬件階段,如果兩個或以上DMA請求設置的優先級一樣,則它們的優先級取決於通道編號,編號越低優先級越高。

DMA配置注意事項:

  • 數據從哪裏來,到哪裏去
  • 傳輸數據的單位是什麼,要傳多少
  • 什麼時候傳輸完成(一次傳輸還是循環傳輸)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章