1,概念:DMA全称为Direct Memory Accessuart,即直接内存存取,是一种外设和内存直接数据传输的方式,作用就是减少CPU的负担传输,特别适合大数据高速度传输时使用。
2,DMA通道
stm32f1系列包含2个DMA控制器,DMA1有7个通道。DMA2有5个通道,每个通道最高可接收8个外设的DMA请求,每个通道还有一个冲裁器,用于处理DMA请求间的优先级。
stm32f4系列包含2个DMA控制器,每个DMA控制器包含8个数据流,每个数据流有最多达8个通道,每个数据流通道都有一个仲裁器,用于处理DMA请求间的优先级。
3,冲裁器判断各外设的DMA请求的优先级级别
①,非常高优先级
②,高优先级
③,中优先级
④,低优先级
4,DMA的双缓冲机制
stm32f4系列的DMA可配置为双缓冲机制,类似乒乓操作模式,建立2个缓冲区buffer,当一个缓冲区buffer接收完成后,接收数据自动转到另一个缓冲区buffer,同时CPU可对第一个缓冲区的数据进行操作,从而保证数据接收不受中止影响。
配置举例如下:
DMA_DoubleBufferModeConfig(DMA2_Stream2,(u32)buf1,DMA_Memory_0);//配置双缓冲模式的另一个的buffer
DMA_DoubleBufferModeCmd(DMA2_Stream2,ENABLE);//双缓冲模式开启
5,DMA-spi初始化配置
2,DMA通道
stm32f1系列包含2个DMA控制器,DMA1有7个通道。DMA2有5个通道,每个通道最高可接收8个外设的DMA请求,每个通道还有一个冲裁器,用于处理DMA请求间的优先级。
stm32f4系列包含2个DMA控制器,每个DMA控制器包含8个数据流,每个数据流有最多达8个通道,每个数据流通道都有一个仲裁器,用于处理DMA请求间的优先级。
3,冲裁器判断各外设的DMA请求的优先级级别
①,非常高优先级
②,高优先级
③,中优先级
④,低优先级
4,DMA的双缓冲机制
stm32f4系列的DMA可配置为双缓冲机制,类似乒乓操作模式,建立2个缓冲区buffer,当一个缓冲区buffer接收完成后,接收数据自动转到另一个缓冲区buffer,同时CPU可对第一个缓冲区的数据进行操作,从而保证数据接收不受中止影响。
配置举例如下:
DMA_DoubleBufferModeConfig(DMA2_Stream2,(u32)buf1,DMA_Memory_0);//配置双缓冲模式的另一个的buffer
DMA_DoubleBufferModeCmd(DMA2_Stream2,ENABLE);//双缓冲模式开启
5,DMA-spi初始化配置