DMA是直接寄存器访问功能,可以不经过ARM内核直接将绑定的功能获取的数据,读出到指定寄存器,减少ARM内核的工作量.
1,我们想要使用ADC功能来读取数据,先设置ADC转换速度
2, 配置IO为ADC功能
3,根据需要设置参数,其中Rank的设置55.5Cycless
4,设置ADC2,开启了ADC2的第5通道
5,移植ADC驱动
.
Main
采样前先校准,只需要校准一次,不需要重复校准.
While加入读取ADC数值程序.
6,打开串口助手查看数据
7,基本配置完成,开启DMA方式
用DMA了,就不要选择中断了
8,修改顺序,需要先初始化DMA,然后才初始化ADC
9.程序中开启DMA传递
看起来没有任何程序读ADC1,但程序运行不靠ARM内核,DMA会一直刷新ADC1的值,注意ADC1的变量a1,在DMA读取的时候是读取的地址.
10,DMA读取多路ADC通道的值.
把PA5的ADC2设置为ADC1.
多通道要设置为扫描模式.
11,多通道DMA程序
开启DMA