首页 > 编程知识 正文

stm32中DMA,stm32 dma详解

时间:2023-05-03 20:42:30 阅读:284000 作者:87

      DMA英文全称为:Data Memory Access(直接存储器访问)。说通俗点,其实就是把数据从一个地方传输到另一个地方。想必很多朋友都会有疑问了,数据直接赋值过去不就行了吗?其实不然,DMA是直接去存储器访问不需要把数据暂存到寄存器中,所以这个过程不占用CPU,这样完全释放了我们的CPU让它去处理别的任务。

      STM32中的DMA有两种DMA1与DMA2,分别有7个通道和5个通道,都有三种传输方式(1.外设传输到存储器 2.存储器传输到外设 3.存储器传输到存储器)具体可以参考STM32的官方手册。并且不同的外设只能通过规定的通道,多个通道一起传输时,就需要DMA仲裁器去处理,来按优先级传输。具体图如下:

     

    

       优先级处理的时候,先按软件设置,再看硬件本身(DMA1优先DMA2,通道小的比通道编号大的优先级高)

初步了解,直接来分析DMA的官方库中结构体吧,想必大家在学习这部分时候已经熟悉了库函数的操作了。大致DMA的初始化一共分为三步:

         

       

     

    接下来我在下篇博客分析下DMA的具体编程,让我们能够去真正使用它。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。