1.如上图,如果获取ADC2校准值为什么设置是ADC1的CAL位置1?
2.结果为什么要加2次校验值?
1.如上图,如果获取ADC2校准值为什么设置是ADC1的CAL位置1?
2.结果为什么要加2次校验值?
您好,不好意思,已经及时修改,需要将Get_CalibrationValue函数里面的ADC1改为ADCx即可,关于第二张图,main函数里面Get_ConversionVal1这个函数入口参数不需要加校准值,去掉即可,感谢你的细心发现。
实际测试了一下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接地
您好,实际使用中可根据实际测量值做适当修改,例程中提供的是适合大多数情况的