qazplm3218 发表于 2020-7-23 22:20:33

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()初始化时,直接就卡在这条初始化程序上,程序不能执行下去?
不知道什么原因,难道是初始化程序有问题??没找到原因?求解答




wenyangzeng 发表于 2020-7-24 07:20:58

貌似未使能ADC时钟:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE);
同时还需要:
ADC_Cmd(ADC1, ENABLE);
而且未进行ADC通道分配





知马力 发表于 2020-7-24 10:19:20

楼上正解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的寄存器

ts2000 发表于 2020-7-24 10:20:02

没可能初始化ADC都会卡死,,,是不是引用了错误的ADC引脚,还是ADC时钟没开启?

qazplm3218 发表于 2020-7-24 13:00:22

问题已解决,在其他.C文件里已经把ADC引脚给使用了,
页: [1]
查看完整版本: STM32F103VE的ADC问题?