其他分享
首页 > 其他分享> > STM32F10x 串口使用DMA

STM32F10x 串口使用DMA

作者:互联网

一、DMA简介

DMA(Direct Memory Access,直接存储器访问) 是所有现代电脑的重要特色,它允许不同速度的硬件装置来沟通,而不需要依赖于 CPU 的大量中断负载。否则,CPU 需要从来源把每一片段的资料复制到暂存器,然后把它们再次写回到新的地方。在这个时间中,CPU 对于其他的工作来说就无法使用。

二、DMA的工作原理

  DMA 传输将数据从一个地址空间复制到另外一个地址空间。当CPU 初始化这个传输动作,传输动作本身是由 DMA 控制器来实行和完成。
  在实现DMA传输时,是由DMA控制器直接掌管总线,因此,存在着一个总线控制权转移问题。即DMA传输前,CPU要把总线控制权交给DMA控制器,而在结束DMA传输后,DMA控制器应立即把总线控制权再交回给CPU。一个完整的DMA传输过程必须经过DMA请求、DMA响应、DMA传输、DMA结束4个步骤。
  传输的四种情况:

  1. DMA主要特征
  1. DMA框图

  2. DMA硬件优先级

  3. 各个通道的DMA

三、程序分析

  1. 初始化结构体
typedef struct
{
    uint32_t DMA_PeripheralBaseAddr; 
    uint32_t DMA_MemoryBaseAddr;    
    uint32_t DMA_DIR;              
    uint32_t DMA_BufferSize;        
    uint32_t DMA_PeripheralInc;     
    uint32_t DMA_MemoryInc;         
    uint32_t DMA_PeripheralDataSize; 
    uint32_t DMA_MemoryDataSize;     
    uint32_t DMA_Mode;              
    uint32_t DMA_Priority;          
    uint32_t DMA_M2M;                
}DMA_InitTypeDef;

参考文献

STM32 DMA工作原理:https://blog.csdn.net/baidu_37366055/article/details/98069744
STM32之DMA原理:https://blog.csdn.net/lushoumin/article/details/78907526

标签:DMA,存储器,STM32F10x,CPU,传输,串口,uint32,外设
来源: https://www.cnblogs.com/jzcn/p/15814823.html