STM32在ADC测电压时遇到的问题

//用结构体配置 ADC1
    ADC_InitTypeDef ADC_InitStructure;
    ADC_DeInit(ADC1);
    ADC_InitStructure.ADC_DataAlign=ADC_DataAlign_Right;//数据右对齐
    ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;//配置为软件触发
    ADC_InitStructure.ADC_Mode=ADC_Mode_Independent;//独立模式(或者双模式)
    ADC_InitStructure.ADC_NbrOfChannel=1;//规则组通道数为 1
    ADC_InitStructure.ADC_ContinuousConvMode=DISABLE;//连续转换或单次转换
    ADC_InitStructure.ADC_ScanConvMode=DISABLE;//非扫描模式
    ADC_Init(ADC1,&ADC_InitStructure);
    

// ADC1 规则组配置
    ADC_RegularChannelConfig(ADC1,ADC_Channel_6,1,ADC_SampleTime_239Cycles5);//将通道6放在规则组序列1上

在ADC转换电压值,遇到一个很奇怪的问题。如上面所示,先配置ADC1,再配置ADC1的规则组,这样测得的电压值为11.6v,很接近我用万用表测出来的值11.77v。但是,当我把这两个部分交换顺序,即先配置ADC1规则组,再用结构体配置ADC1后,测出的电压是10.3v,不知道什么原因。

希望有好心人解惑。

你可能感兴趣的:(stm32,嵌入式硬件,单片机)