我不配置PA4和PA5的GPIO时编译出错,配置后单个通道测试正常,变动对应的RV,数值会变化,但象您那样在循环中逐个转换,则所有的数值一样,没有变化。
麻烦您看一下我的代码对么:
while(1)
{
ADC1_SingleChannel( ADC_Channel_1);
ADCVAL = Get_Adc_Average(ADC_Channel_1,5);//取5次的平均值
adc_val[0] = ((float)ADCVAL/4095)*3.3;
printf("ADC通道1= %fV\r\n",adc_val[0]);
delay_ms(200);
ADC1_SingleChannel( ADC_Channel_4);
ADCVAL = Get_Adc_Average(ADC_Channel_4,5);//取5次的平均值
adc_val[1] = ((float)ADCVAL/4095)*3.3;
printf("ADC通道4= %fV\r\n",adc_val[1]);
delay_ms(200);
ADC1_SingleChannel( ADC_Channel_5);
ADCVAL = Get_Adc_Average(ADC_Channel_5,5);//取5次的平均值
adc_val[2] = ((float)ADCVAL/4095)*3.3;
printf("ADC通道5= %fV\r\n",adc_val[2]);
delay_ms(200);
ADC1_SingleChannel( ADC_Channel_10);
ADCVAL=Get_Adc_Average(ADC_Channel_10,5);
adc_val[3] = 27.0+(ADCVAL-1800)/5.96;
printf("内部温度= %.2f度\r\n",adc_val[3]);
delay_ms(200);
ADC1_SingleChannel( ADC_Channel_11);
ADCVAL=Get_Adc_Average(ADC_Channel_11,5);
adc_val[4] = ((float)ADCVAL/4095)*3.3;
printf("内部基准电压= %fv\r\n\r\n",adc_val[4]);
delay_ms(1000);
}
|