STM32 DMA的使用总结

Posted 道亦无名

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STM32 DMA的使用总结相关的知识,希望对你有一定的参考价值。

通道配置过程

  1. 在DMA_CPARx寄存器总设置外设寄存器的地址。发生外设数据传输请求时,这个地址将是传输的源或目标
  2. 在DMA_CMARx寄存器中设置数据存取器的地址,发生外设数据传输请求时,传输的数据将从这个地址读出或写入这个地址
  3. 在DMA_CMARx寄存器中设置要传输的数据量,在每个数据传输后,这个数值递减。
  4. 在DMA_CCRx寄存器的PL位中设置通道的优先级
  5. 在DMA_CCRx寄存器中设置数据传输方向、循环模式、外设和寄存器的增量模式、外设和存储器的数据宽度、传输一半产生中断或传输完成产生中断
  6. 设置DMA_CCRx寄存器的ENABLE位,启动该通道

一旦启动了DMA通道,它即可响应连到该通道上的外设的DMA请求。当传输一般的数据后,半传输标志(HTIF)将被置1,当设置了半传输中断位时,将产生一个中断请求,在数据传输结束后,传输完成标志被置1,当设置了允许传输完成中断位后,将产生一个中断请求。

循环模式

循环模式用于处理循环缓冲区和连续的数据传输(如ADC的扫描模式),在DMA_CCRx寄存器中的CIRC位用于开启这一功能,当启动了循环模式,数据传输的数目变为0时,将会自动地被恢复成配置通道时设置的初值,DMA操作将会继续进行。

存储器到存储器模式

DMA通道的操作可以在没有外设请求的情况下进行,这种操作就是存储器到存储器模式。当设置了DMA_CCRx寄存器中的MEM2MEM位之后,在软件设置了DMA_CCRx寄存器中的EN位启动DMA通道时,DMA传输将马上开始,当DMA_CNDTRx

以上是关于STM32 DMA的使用总结的主要内容,如果未能解决你的问题,请参考以下文章

STM32 DMA使用总结2

关于STM32 DMA相关总结[概述知识点]

STM32F103(二十一)DMA(超详细的~)

stm32 嵌入式开发 中ADC独立多通道DMA传输数据实验总结

STM32CubeMX(07)定时器+ DAC+DMA输出阶梯波实验。

STM32f103的数电采集电路的DMA设计和使用优化程序