一,DMA的作用,DMA可以再有固定地址的寄存器,外设相互之间进行数据的传输,再此过程中CPU除了在传输之前初始化配置DMA控制器和在传输完成之后执行复位操作或中断,在传输的过程中如何没有设置触发中断,CPU全程不进行任何干预。
二,DMA的工作流程
假设你已经初始化配置了DMA控制器并且打通了DMA通道,那么他将会按如下流程工作:
首先外设向DMA控制器发送一个请求,这个请求在DMA控制器的仲裁器会经过优先仲裁,然后DMA控制器会通过你一设置好的参数来向发出请求的外设发送一个信号来从外设的数据寄存器中获取数据,获取地址的过程中指针会自增以便连续获取。获取的数据会经过DMA通道存入DMA的缓存中,当取得一定量的数据之后数据又会从缓存通过DMA通道发送网目的地址,当此通道的数量传输寄存器中的值递减为0时,传输结束,结束后别忘了要软件将传输完成标志置零。
三,总结
DMA的工作流程大概如上所述,其中核心的几个点为源地址,目的地址,传输数量。还有优先级。这些配置在stm32手册有详细描述