STM32学习笔记(四)直接寄存器访问(DMA)

  • 1、DMA即直接存储器方位。DMA传输方式无须CPU直接控制设备,也没有中断处理方式那样的保留现场和恢复现场的过程,通过硬件为RAM和IO设置开辟一条直接传送数据的通路,能使CPU的效率大为提高。
  • 2、STM32共有两个DMA,总共12个通道。外设(TIMx,ADC,SPIx,i2Cx和USRTx)产生的DMA请求,通过逻辑或输入到DMA控制器,意味着同时只能有一个请求有效。
  • 3、DMA相当于一个数据的搬运工,将数据在内存和外设之间搬运,而不用通过CPU。典型的例子就是移动一个外部内存的区块到芯片内部更快的内存区。像是这样的操作并没有让处理器工作拖延,反而可以被重新排程去处理其他的工作。 DMA 传输对于高效能嵌入式系统算法和网络是很重要的。
  • 4、DMA的数据传送方向可以为从内存到外设,也可以为从外设到内存。