stm32之DMA

   1.DMA直接存储器访问,用来提供外设寄存器(GPIO口,TIMx,USART等)<->存储器(SRAM(程序运行在这个空间),Flash(程序存储在这里面),u8 data[]--都是运行在SRAM空间里的),存储器<->存储器(这种模式不可以和循环模式同时使用)之间数据传送,节省了MCU的资源。

 外设:片上外设:芯片上的,GPIO口,USART等。

        片外外设:连接的外部设备,例如dht11,MQ2等。

  内核:是芯片架构,里面有各种逻辑电路,类似于人脑。

  2.DMA1通道选择:ADC1的DMA通道就是DMA1,不管是ADC1的哪个通道,使用DMA对应的都是DMA1的通道1;同样ADC2对应DMA2的通道2;

    3.DMA的作用:DMA传输方式无需CPU直接控制传输, 也没有中断处理方式那样保留现场和恢复现场过程, 通过硬件为RAM和IO设备开辟一条直接传输数据的通道, 使得CPU的效率大大提高。 

    4.DMA的工作原理
    当用户将参数设置好, 主要涉及源地址、 目标地址、传输数据量这三个, DMA控制器就会启动数据传输, 传输的终点就是剩余传输数据量为0( 循环传输不是这样的) 。换句话说只要剩余传输数据量不是0, 而且DMA是启动状态, 那么就会发生数据传输。 

  5.DMA主要特性

12个独立的可配置的通道(请求)DMA17个通道, DMA25个通道

● 每个通道都直接连接专用的硬件DMA请求,每个通道都同样支持软件触发。这些功能通过软件来配置。

● 在同一个DMA模块上,多个请求间的优先权可以通过软件编程设置(共有四级:很高、高、中等和低),优先权设置相等时由硬件决定(请求0优先于请求1,依此类推)

● 独立数据源和目标数据区的传输宽度(字节、半字、全字),模拟打包和拆包的过程。源和目标地址必须按数据传输宽度对齐。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzsxjw.html