STM32 多通道ADC之数据到内存 DMA传输

   编写中

   DMA的英文Direct memory access,意思就是传输将数据从一个地址空间复制到另一个地址空间,设置好后自动传输而不

需要处理器参与。STM32F030F4,共有5个DMA通道,要想使用必须进行一些设置。

    下面以ADC多通道采集为例,大致分3步:

     1. GPIO的配置。该配置主要设置ADC采集涉及的IO口,本例设置ADC连接9个IO口进行模拟量采集。

     2. ADC的配置。设置多通道采集速率、连续转换模式、使能和DMA通道的连接等。注意该芯片只有ADC1。

     3. DMA的配置。设置DMA的开启、源地址、目标地址等。该芯片只有DMA1,但有5个通道,本例用通道1。

下面是main.c代码:

#include "stm32f0xx.h"
#include "stm32f0xx_rcc.h"
#include "stm32f0xx_gpio.h"
#include "stm32f0xx_adc.h"
#include "stm32f0xx_dma.h"

// 6 脚PA0 ADC_IN0
// 7 脚PA1 ADC_IN1
// 8 脚PA2 ADC_IN2
// 9 脚PA3 ADC_IN3
// 10脚PA4 ADC_IN4
// 11脚PA5 ADC_IN5
// 12脚PA6 ADC_IN6
// 13脚PA7 ADC_IN7
// 14脚PB1 ADC_IN9   注意:STM32F030F4芯片没有ADC_IN8通道哦!

#define N 50              //每通道采50次
#define M 9               //为9个通道

猜你喜欢

转载自www.cnblogs.com/beiyhs/p/12061278.html