一、配置DMA的一般流程
1、開啟DMA模塊時鍾,開啟要使用DMA通道的外設的時鍾;
2、按照配置外設的一般步驟配置外設,包括相關IO的配置,外設工作方式的配置等;
3、調用外設的DMA配置命令函數配置外設是接收數據通道還是發送數據通道使用DMA;
4、配置相應的DMA通道,在STM32中不同的DMA通道支持的外設通道不同,所以要查閱STM32的參考手冊,確定要配置的DMA通道,配置過程如下:
4.1、配置DMA通道的工作方式,比如外設地址,內存地址,傳輸的數據寬度和數據量等等;
4.2、配置DMA通道的中斷以及中斷處理函數。
二、使用DMA時需要注意的問題
1、不同的DMA通道支持的外設不同,例如SPI1的DMA通道是DMA1_Channel3,而SPI2的DMA通道是DMA1_Channel5。
2、DMA使用場景一般是,傳輸的數據量和傳輸的時間確定。例如使用SPI或者串口發送字節數確定的數據,而通過中斷方式接受數據的場景不適合DMA,例如使用中斷的方式通過串口接收數據時,因為每次有數據到來的時候,串口中斷都會打斷CPU的運行,CPU要介入處理且一般情況下不知道發送方發送的數據量是多少,所以不好配置DMA