Вычисляю
Код
/* Calibration procedure */
ADC_VoltageRegulatorCmd(ADC2, ENABLE);
Delay_us(20);
ADC_SelectCalibrationMode(ADC2, ADC_CalibrationMode_Single);
ADC_StartCalibration(ADC2);
while(ADC_GetCalibrationStatus(ADC2) != RESET );
vref_cal = ADC_GetCalibrationValue(ADC2); //79
ADC_RegularChannelConfig(ADC2, ADC_Channel_Vrefint, 1, ADC_SampleTime_7Cycles5);
/* Enable ADC21 */
ADC_Cmd(ADC2, ENABLE);
vref_data = ADC_Read(ADC2, ADC_Channel_Vrefint, 1); //1208
//79 //1208
vref = (3300 * vref_cal) / vref_data; // = 215 ???
if (vref > 2850 && vref < 3500)
return ADC_INIT_OK;
else
{
vref = 3300;
return ADC_INIT_ERROR;
}
получаю vref = 215.
где прокол?
Сообщение отредактировал Jenya7 - Sep 13 2018, 10:34