STM32之DMA学习笔记1(理论部分)

 在跌倒之前爬起来才发现,没有注定的阴霾,只有准备不足的微笑

DMA:Data Memory Access,直接存储器访问。主要功能:可以把数据从一个地方搬到另一个地方,而且不占用cpu

(可用于led,lcd)
DMA1和DMA2各有7个通道,可以实现P(外设)->M(内存),M->P,M->M

DMA功能框图:
1,DMA请求,
2,通道 (DMA1 7个通道 DMA2 5个通道) 
3,仲裁 
    <1>软件  DMA_CCRX(寄存器)
    <2>硬件        同一个DMA:先比较优先级,在比较通道号,通道号越小,优先级越高。
                不同DMA:DMA1>DMA2
                
                
DMA编程: (以stm32为例)
1 DMA_Initdef结构体初始化 
{结构体成员:1 外设地址DMA_CPAR          存储器地址DMA_CMAR                      传输方向,DMA_CCR:DIR (哪来到哪去)
                     2 传输数目DMA_CNDTR      外设地址是否递增DMA_CCRx:PINC 外设地址是否递增DMA_CCRx:MINC 外设数据宽度DMA_CCRx:PSIZE    存储数据宽度DMA_CCRx:MSIZE (数量与单位)
                       3 传输模式DMA_CCRx:CIRC 传输过半,传输完成,传输错误DMA_ISR(完成度)
}

猜你喜欢

转载自blog.csdn.net/iubuntu_qi/article/details/82117964