/*adc.h*/
#define ADC1_DR_Address ((u32)0x4001244C)
void ADC_Configuration(void);
/*adc.c*/
#include "adc.h"
vu16 ADC_ConvertedValue; //此变量用来存放DMA读取到的ADC转换的结果,在main函数中 extern vu16 ADC_ConvertedValue; 即可使用转换好的结果
/*ADC配置,包括了DMA的配置,只需要在main函数中调用这个函数即可*/
void ADC_Configuration( void)
{
ADC_InitTypeDef ADC_InitStructure;
DMA_InitTypeDef DMA_InitStructure;
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE); //初始化外设(DMA)的时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 | RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE); //初始化外设(ADC1,GPIOA)的时钟,因为使用的是GPIOA的第二功能, 所以还得把第二功能的时钟给启动了
/* Configure PA.0x (ADC Channelx) as analog input -------------------------*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 ; //将GPIOA的第5引脚设置为模拟输入(如果需要使用其他的引脚的话,只需要把5改成对应的引脚,并修改对应的ADC通道(下方有说明)即可)
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; //设置为模拟输入
GPIO_Init(GPIOA, &GPIO_InitStructure); //调用初始化库函数,将上面的配置写入寄存器
/* D
#define ADC1_DR_Address ((u32)0x4001244C)
void ADC_Configuration(void);
/*adc.c*/
#include "adc.h"
vu16 ADC_ConvertedValue; //此变量用来存放DMA读取到的ADC转换的结果,在main函数中 extern vu16 ADC_ConvertedValue; 即可使用转换好的结果
/*ADC配置,包括了DMA的配置,只需要在main函数中调用这个函数即可*/
void ADC_Configuration( void)
{
ADC_InitTypeDef ADC_InitStructure;
DMA_InitTypeDef DMA_InitStructure;
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE); //初始化外设(DMA)的时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 | RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE); //初始化外设(ADC1,GPIOA)的时钟,因为使用的是GPIOA的第二功能, 所以还得把第二功能的时钟给启动了
/* Configure PA.0x (ADC Channelx) as analog input -------------------------*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 ; //将GPIOA的第5引脚设置为模拟输入(如果需要使用其他的引脚的话,只需要把5改成对应的引脚,并修改对应的ADC通道(下方有说明)即可)
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; //设置为模拟输入
GPIO_Init(GPIOA, &GPIO_InitStructure); //调用初始化库函数,将上面的配置写入寄存器
/* D