DMA—直接存储区访问

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、dma相关
  • 二、代码
  • 总结

前言

这里主要记录一下stm32f407zg的dma-uart的接收

一、dma相关

1.简介
DMA:一种搬运数据的东西(在搬运过程中不占用cpu,但是会抢占总线,可能会导致cpu错过中断),一般用在adc的采集中,在我的开发板(stm32f407zg)中,两个dma,每个dma8个数据流,每个数据流有8个通道(即:对应8个外设请求),注意:每一个数据流虽然有8个通道,但是同一时刻只能相应一个通道。
2.模式
外设到存储器传输、存储器到外设传输和存储器到存储器传输三种传输模式
外设:外设的数据寄存器。
存储器:一般是指片内SRAM、外部存储器、片内Flash等等。
3.优先级
两种设置模式
1.软件设置(非常高、高、中和低)
2.硬件控制(数据流编 越小优先级别越高)
4.FIFO
每个数据流都独立拥有四级32位的FIFO,也就是16个字节,可以设置阈值(1/4、1/2、3/4和满),到达阈值才传—FIFO模式,有数就传—直接模式(默认直接模式)
5.配置参数说明
DMA2支持全部三种传输模式(dma1不支持内存到内存,因为没有挂载在ahb总线上),
位宽:可以设置外设和存储器数据宽度大小:字节(8位)、半字(16位)和字(32位),当时用直接模式的时候,只需要指定外设数据宽度既可。
源地址和目标地址:32位,两种寄存器(DMA_SxM0AR(x为0~7) ,DMA_SxM1AR(x为0~7) ,其中DMA_SxM1AR只用来双缓冲模式所以会看到在直接模式中的memory0)
流控制:即传输数据的个数,这里的个数单位是前面设置的位宽
循环模式/单次模式:字面意思。
传输类型:单次与突发(突发一般与FIFO一起使用,达到阈值即传输)

二、代码

总结

下把争取做到少些文字,更生动形象,不然文字太多自己都不想看;

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年5月7日
下一篇 2022年5月7日

相关推荐