文档介绍:STM32 DMA
DMA
DMA: Direct memory access is used in order to provide high-speed data transfer between peripherals and memory as well as memory to memory.
2 DMA
DMA1 7通道
DMA2 5通道
仲裁器
DMA寄存器
DMA_ISR 中断状态寄存器
DMA_IFCR 中断标志清除寄存器
Rx 通道配置寄存器
DTRx 传输数量寄存器
DMA_CPARx 外设地址寄存器
DMA_CMARx 存储器地址寄存器
固件库API函数
DMA框图
DMA工作流程
发送DMA请求信号到DMA控制器
DMA根据通道优先级来处理请求信号
DMA控制器发送一个应答信号
DMA传送的3个操作
从外设数据寄存器或者从DMA_CMARx寄存器指定地址的存储器单元执行加载操作
存数据到外设数据寄存器或者数据到DMA_CMARx寄存器指定地址的存储器单元
DTRx寄存器的递减操作。该寄存器包含未完成的操作数目。
DMA通道
可编程的数据量
Rx寄存器中的PSIZE和MSIZE位编程
指针增量
传输一个数据之后,下一个传输的地址自动完成增量
DMA通道配置过程
1. 在DMA_CPARx寄存器中设置外设寄存器的地址
2. 在DMA_CMARx寄存器总设置数据存储器的地址
3. DTRx寄存器中设置要传输的数据量
4. Rx寄存器的PL[1:0]位中设置通道的优先级
5. Rx寄存器中设置数据传输的方向、循环模式、外设和存储器的增量模式、外设和存储器的数据宽度、传输一半产生中断或者传输完成产生中断
6. Rx寄存器的EN位,启动该通道。
CPARx && CMARx