STM系列学习(2)DMA直接存储区访问

进入正题

DMA(DIrect Memory Access)直接存储器存取是单片机的一个外设,主要用来搬运数据,在AD采集、DA输出、存储器写入等可以不占用CPU。
STM32的DMA控制器包含了DMA1和DMA2,其中DMA1有7个通道,DMA2有5个通道。

DMA通道

不同的DMA控制器的通道对应不同的外设请求,根据软件编程响应对应的请求。
STM系列学习(2)DMA直接存储区访问_第1张图片
STM系列学习(2)DMA直接存储区访问_第2张图片
当发生多个DMA通道请求时,由仲裁器响应先后顺序。仲裁器在软件层面可以通过DMA_CCRx寄存器设置响应优先级,如果软件优先级相同,硬件层面根据通道编号顺序响应,编号越低优先级越高。

DMA使用

配置DMA
1.数据从位置1传输到位置2

  • 1.1外设到存储器
    ADC采集,传感器数据采集等
  • 1.2存储器到外设
    串口发送数据,DAC转换等
  • 1.3存储器到存储器
    内部FLASH向内部SRAM复制数据

2.传输数据的单位和大小
源和目标的数据宽度必须一致
外设的数据宽度由DMA_CCR的PSIZE[1:0]配置,可以是8/16/32位,存储器的数据宽度由DMA_CCR的MSIZE[1:0]配置,可以是8/16/32位

3.是一次传输还是循环传输
一次传输想要再传输需要关断DMA使能后再重新配置
循环传输一次传输完成后又恢复第一次传输时的配置DMA_CCR寄存器的CIRC循环模式控制位

最近设计元器件需要使用SPI进行通信,下一章研究一下SPI通讯方式

你可能感兴趣的:(STM32学习)