10、直接存储器存取【DMA】

简介:

直接存储器访问(Direct Memory Access)简称DMA。DMA是CPU一个用于数据从一个地址空间到另一地址空间“搬运”的外设,

数据拷贝过程不需CPU干预,数据拷贝完成通知CPU处理。因此大量数据拷贝时,使用DMA可以释放CPU资源。DMA数据拷贝过程,典型的有:

内存—>内存,内存间拷贝

外设—>内存,如uart、spi、i2c等总线接收数据过程

内存—>外设,如uart、spi、i2c等总线发送数据过程

常用HAL库函数:

//DMA方式启动ADC转换

HAL_ADC_Start_DMA(&hadc1,(uint32_t *)buf1,2);

//ADC转换完成中断回调函数

void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)

{

}

示例代码:

image.png 

实验验证:

image.png