STM32F103VE的ADC问题?
下面是STM32F103VE芯片的PA、PC端口的ADC引脚初始程序void ADC_GPIOA_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN; //设置为模拟量输入
GPIO_Init(GPIOA,&GPIO_InitStructure);
}
void ADC_GPIOC_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN; //设置为模拟量输入
GPIO_Init(GPIOC,&GPIO_InitStructure);
}
ADC_GPIOC_Configuration()初始化很正常,ADC功能也正常工作,
但是换成ADC_GPIOA_Configuration()初始化时,直接就卡在这条初始化程序上,程序不能执行下去?
不知道什么原因,难道是初始化程序有问题??没找到原因?求解答
貌似未使能ADC时钟:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE);
同时还需要:
ADC_Cmd(ADC1, ENABLE);
而且未进行ADC通道分配
楼上正解ADC基本配置 如下
ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; //ADC工作模式:ADC1和ADC2工作在独立模式
ADC_InitStructure.ADC_ScanConvMode = DISABLE; //模数转换工作在单通道模式
ADC_InitStructure.ADC_ContinuousConvMode = DISABLE; //模数转换工作在单次转换模式
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; //转换由软件而不是外部触发启动
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; //ADC数据右对齐
ADC_InitStructure.ADC_NbrOfChannel = 1; //顺序进行规则转换的ADC通道的数目
ADC_Init(ADC1, &ADC_InitStructure); //根据ADC_InitStruct中指定的参数初始化外设ADCx的寄存器 没可能初始化ADC都会卡死,,,是不是引用了错误的ADC引脚,还是ADC时钟没开启? 问题已解决,在其他.C文件里已经把ADC引脚给使用了,
页:
[1]