#pragma once #ifdef __cplusplus extern "C" { #endif #include "esp_err.h" #include // 电池ADC引脚配置 #define PIN_BAT_ADC 3 // GPIO3 #define BAT_ADC_CHANNEL ADC_CHANNEL_2 // ADC1_CH2 // 分压比(实际电池电压 = ADC测量电压 * 此系数) // 根据硬件电路中的分压电阻调整,1:1分压器设为2 #define BAT_VOLTAGE_DIVIDER 2 // 采样次数(取平均值,提高精度) #define BAT_SAMPLE_COUNT 32 // 监控间隔(毫秒) #define BAT_MONITOR_INTERVAL_MS 5000 // 初始化电池ADC检测 esp_err_t dzbj_battery_init(void); // 获取电池电压(毫伏) uint32_t dzbj_battery_get_voltage_mv(void); // 获取电池电量百分比(0-100) uint8_t dzbj_battery_get_level(void); // 启动电池监控任务(周期性读取ADC并更新UI) void dzbj_battery_monitor_start(void); #ifdef __cplusplus } #endif