1.如上圖,如果獲取ADC2校準(zhǔn)值為什么設(shè)置是ADC1的CAL位置1?
2.結(jié)果為什么要加2次校驗(yàn)值?
1.如上圖,如果獲取ADC2校準(zhǔn)值為什么設(shè)置是ADC1的CAL位置1?
2.結(jié)果為什么要加2次校驗(yàn)值?
您好,不好意思,已經(jīng)及時修改,需要將Get_CalibrationValue函數(shù)里面的ADC1改為ADCx即可,關(guān)于第二張圖,main函數(shù)里面Get_ConversionVal1這個函數(shù)入口參數(shù)不需要加校準(zhǔn)值,去掉即可,感謝你的細(xì)心發(fā)現(xiàn)。
實(shí)際測試了一下DualADC_AlternateTrigger例程,通道五接地。感覺把前面圖一最后一句改為
return (int16_t)2048 - (int16_t)t;
要正常些,不知這樣改對不對,如下圖
while (1) {
? ? ? ? while (!ADC_GetFlagStatus(ADC1, ADC_FLAG_JEOC));
? ? ? ? ADC_ClearFlag(ADC1, ADC_FLAG_JEOC);
? ? ? ? adc_val[0] = ADC_GetInjectedConversionValue(ADC1, ADC_InjectedChannel_1);
? ? ? ? printf("ADC1_ch4=%d\tCorrected_ch4=%d\r\n", adc_val[0], get_conversion_val1(adc_val[0]));
? ? ? ? while (!ADC_GetFlagStatus(ADC2, ADC_FLAG_JEOC));
? ? ? ? ADC_ClearFlag(ADC2, ADC_FLAG_JEOC);
? ? ? ? adc_val[1] = ADC_GetInjectedConversionValue(ADC2, ADC_InjectedChannel_1);
? ? ? ? printf("ADC2_ch5=%d\tCorrected_ch5=%d\r\n", adc_val[1], get_conversion_val2(adc_val[1]));
? ? ? ? delay_ms(500);
? ? }
通道4接地
您好,實(shí)際使用中可根據(jù)實(shí)際測量值做適當(dāng)修改,例程中提供的是適合大多數(shù)情況的