DMA:direct memory access :直接存储器访问
DMA将数据从一个地址空间复制到另一个地址空间,在外设和存储器之间或者存储器与存储器之间进行高速数据传输。
DMA:数据传输不需要cpu
DMA传输参数须知:
数据源地址
数据传输位置的目标地址
数据传输量
传输模式
stm32由2个DMA控制器,DMA1有7个通道,DMA2有5个通道
从外设(TIMx[x=1,2,3,4]、ADC1、SPI1、SPI/I2S2、I2Cx[x=1,2]和USARTx=[x=1,2,3] )产生的7个DMA请求
从外设(TIMx[5,6,7,8]、ADC3、SPI/I2S3、UART4、DAC通道1,2和SDIO)产生的5个请求,经逻辑或输入到DMA2控制器
DMA传输时外设对DMA控制器发出请求,DMA工作,DMA控制器从AHB外设获取ADC采集的数据,由DMA通道存放再SRAM。
发生一个事件,外设向DMA控制器发送一个请求信号。
DMA控制器访问发出请求的外设,收到应答信号,外设释放请求,一旦外设释放请求,DMA控制器撤销应答信号。
外设数据寄存器从当前存储器地址取数据,第一个传输的开始地址时DMA_CPARx或DMA_CMARx寄存器指定的外设基地址或存储器单元。
存数据到外设同理
执行一次DMA_CNDTRx寄存器的递减操作,该寄存器包含未完成的操作数目。
DMA传输方式:
DMA_Mode_Normal正常模式
DMA_Mode_Circular循环传输模式
仲裁其的作用是去欸的那个各个DMA传输的优先级,根据通道请求的优先级来启动外设/存储器的访问