首先我们应将PC0设置成模拟输入:
#include "adc.h"
/*ADC1_DR_Address需要自己配置,即为存放转换结果的寄存器,他的作用就是告诉DMA取数就到ADC1_DR_Address 这里来取。*/
#define ADC1_DR_Address ((u32)0x40012400+0x4c)
/*查了一下,目前应该还没有人写出头文件定义,其实也不难,自己定义也可以,只是需要查数据手册*/
/*定义变量ADC_ConvertedValue,放AD1通道10转 换的数据*/
__IO uint16_t ADC_ConvertedValue;
static void ADC1_GPIO_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
/* Enable ADC1 and GPIOC clock ADC1和GPIOC都是由RCC_APB2Periph使能工作*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 |RCC_APB2Periph_GPIOC,ENABLE);
/* 选择引脚,PC0是10通道*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 ;
/* 选择IO口工作方式为模拟输入*/
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
GPIO_Init(GPIOC, &GPIO_InitStructure); /* 设定上述参数*/
}
AD初始化下回再研究一下。