uint16_t HAL_GetVbatt(void)
{
? ? uint8_t sensor, channel, config, tkey_cfg;
? ? uint16_t adc_data;
? ? tkey_cfg = R8_TKEY_CFG;
? ? sensor = R8_TEM_SENSOR;
? ? channel = R8_ADC_CHANNEL;
? ? config = R8_ADC_CFG;
? ? ADC_InterBATSampInit();
? ? R8_ADC_CONVERT |= RB_ADC_START;
? ? while (R8_ADC_CONVERT & RB_ADC_START)
? ? ? ? ;
? ? adc_data = R16_ADC_DATA;
? ? R8_TEM_SENSOR = sensor;
? ? R8_ADC_CHANNEL = channel;
? ? R8_ADC_CFG = config;
? ? R8_TKEY_CFG = tkey_cfg;
? ? return (adc_data+ADC_DataCalib_Rough());
}
或者用系統(tǒng)自帶的:
? ? ? ? ADC_InterBATSampInit();
? ? ? ? PRINT("%d\r\n",ADC_ExcutSingleConver());
公式:(ADC/512-3)*Vref
3.6V供電:adc值是3300????公式計算電壓:6.807V
3.3V供電:adc值是3156? ??公式計算電壓:6.510V
3.0V供電:adc值是3009? ??公式計算電壓:6.207V
2.9V供電:adc值是2961? ??公式計算電壓:6.108V
2.5V供電:adc值是2761? ??公式計算電壓:5.696V
無法對的上,也無法找到內(nèi)部VBAT通道和實際供電電壓的線性關(guān)系,請問正確的操作是?