编写中
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个通道