我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:藏宝阁 > 地址寄存器 >

不用库函数自己动手配置STM32中的DMA

归档日期:04-17       文本归类:地址寄存器      文章编辑:爱尚语录

  DMA英文全称是Direct Memory Access,意思是直接存储器访问。他的作用就是不需要经过CUP进行数据传输,也就是替CPU分担点事情做,什么事情?数据传输方面的事情。也就是说,你只要使能并配置好了DMA,DMA就可以将一批数据从源地址搬运到目的地址去而不经过CPU的干预,这样可以为CPU节省好多精力去干更重要的事情很人性化。就像我们人一样,我们平常习惯性的动作是不用经过大脑思考的,比如说眨眼睛,呼吸等。DMA就是负责这些工作的,但它没人这么智能,需要将它设置好了它才会正常工作。

  要进行数据传输就必须有两个条件:数据从哪传(源地址),数据传到哪里去(目的地址)。是的DMA的确有这两项设置,通过软件设置,设置好源地址和目的地址。在一个重要的条件就是触发源是什么,就是说什么时候进行DMA数据传输呢?这叫触发信号。也可以通过软件编程设置具体时间,具体条件来触发DMA数据传输。

  总之,要使用DMA就要将各种参数,条件配置好才可以用。就提的DMA寄存器说明见STM32的参考手册。下面举一简单的历程来说明DMA的用法,本历程将串口数据发送设置为DMA模式,串口1将持续从RAM中的一段连续的地址中取数据,然后发送出去。用串口调试助手可以监测DMA的工作和CPU互不冲突,串口发送就相当于后台运行的一段程序。具体配置如下:

  配置DMA,手册上表示可以将串口UART1的发送Tx功能配置为DMA发送,在DMA通道4:

  打开串口助手就可以看到Data_Buffer[]中的数据,其实这只是一个简单的演示实例,DMA的用处是很大的,先学会配置,以后会有它大显身手的时候。

  上面这两句就是触发源,你可以把这两句放到定时器TIMx中,比如定时1S触发DMA,这些都是可以任意设置的,不难吧!

本文链接:http://kuenergyclub.com/dizhijicunqi/1.html

上一篇:没有了

下一篇:C语言访问MCU寄存器的三种方式