CH592F 測量內(nèi)部VBAT通道,電壓不準。

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)系,請問正確的操作是?


您好,這邊計算是按照加減乘除的運算順序,先除后減。


哈哈。謝謝。。我看錯了,果然正常了。。。

另外,請教下,內(nèi)部VBAT通道,需要執(zhí)行ADC校準程序嗎?


需要的,加上粗調(diào)值的時候需注意邊界值的處理,如小于0則為0,大于4095為4095.


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频