stm32f407 6个串口dma_stm32之DMA

  一. 对于大容量的STM32芯片有2个DMA控制器,控制器1有7个通道,控制器2有5个通道

  每个通道都可以配置一些外设的地址。

  二. 通道的配置过程:

  1. 首先设置CPARx寄存器和CMARx寄存器。

  通过DMA控制器把一个地址的值复制到另外一个地址,通过DMA控制器自动开启一条通道完成。

  CPARx寄存器存放的是外设的地址

  CMARx寄存器存储的是存储器的地址

  2. 设置数据传输方向,是否循环模式,是不是开启外设和存储器的增量模式,还有数据宽度,是8位,16位还是32位。

  比如设置成存储器的地址增量,那么传输一个数据过去后它的地址自动递增。

  3. 设置要传输的数据量

  4. 设置通道的优先级

  5. 全部设置好后就可以启动DMA通道。

  启动后数据就开始传输,传输的过程中可以读CNDTRx寄存器,可知道当前还剩多少个数据。数据传输到一半或全部传输完毕后有响应的标志位置1,如果开启了中断,可以进入相应的中断程序。

  一。常用的DMA函

你可能感兴趣的:(stm32f407,6个串口dma,stm32f407,6路串口dma配置)