一、DMA介绍篇
1、DMA(存储器直接存取)
2、功能:为CPU分担相当大一部分的”数据搬运”!!!解放CPU资源(CPU去负责更深的运算)
插入: 微控制器由CPU,存储器,外设三部分构成,各部分之间的协调与交互由CPU完成 (大脑,脚与手的关系) (CPU每次都是从A外设拿到一个数据送到B外设使用,中间通过一个”桥”) 而 DMA可实现存储器和存储器之间,外设和存储器之间,存储器和外设之间的传输(跳过CPU)!!!
3、我们来看一下CPU 与DMA在搬运数据上的不同吧!
(1) 基于CPU的单通道中断方式转换数据
extern __IO uint16_t ADC_ConvertedValue; //这里DMA方式 与CPU中断方式都引用一个外部变量(分析代码便可得出不同)
void ADC_IRQHandler(void) //ADC转换完成后会进入中断服务函数,(在中断函数内,通过CPU的“搬运”,对ADC转换后的值进行存储与转送)如下显示:
{
if (ADC_GetITStatus(ADCx,ADC_IT_EOC)==SET)
{
// 读取ADC的转换值
ADC_ConvertedValue = ADC_GetConversion