DMA(Direct Memory Access)直接储存器访问,可以讲数据从一个地址空间复制到另一个地址空间。
为什么出现了DMA?
由于进行数据传输过程中,会一直占用CPU,而CPU不能执行其他的程序。所以就想找一种方式来“自动”控制数据的传输,此时CPU就可以干其他事情。
STM32中,很多外设都可以产生DMA请求,例如 串口,定时器,ADC,SPI, I2C等等。
再STM32f103中,有两个DMA控制器,DMA1有7个通道,DMA2有4个通道。不同的通道可以被不同的外设激活。所以使用不同的外设产生DMA时候,一定要进行通道匹配,不同的通道和不同的外设有固定的联系。