下面是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()初始化时,直接就卡在这条初始化程序上,程序不能执行下去? 不知道什么原因,难道是初始化程序有问题??没找到原因?求解答 |
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE);
同时还需要:
ADC_Cmd(ADC1, ENABLE);
而且未进行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的寄存器
评分
查看全部评分
评分
查看全部评分