成功实现电池电量管理部分

This commit is contained in:
jarvis 2025-03-10 10:42:45 +08:00
parent 926f0fe699
commit 09cc51331d
9 changed files with 52 additions and 64 deletions

View File

@ -1,8 +1,8 @@
{
"C_Cpp.intelliSenseEngine": "default",
"idf.espIdfPathWin": "d:\\espidfEnv\\v5.3.2\\esp-idf",
"idf.toolsPathWin": "d:\\Espressif",
"idf.pythonInstallPath": "d:\\Espressif\\tools\\idf-python\\3.11.2\\python.exe",
"idf.espIdfPathWin": "C:/Espressif/frameworks/esp-idf-v5.3.1/",
"idf.toolsPathWin": "C:\\Espressif",
"idf.pythonInstallPath": "C:\\Espressif\\tools\\idf-python\\3.11.2\\python.exe",
"idf.customExtraVars": {
"OPENOCD_SCRIPTS": "d:\\Espressif\\tools\\openocd-esp32\\v0.12.0-esp32-20240318/openocd-esp32/share/openocd/scripts",
"IDF_CCACHE_ENABLE": "1",
@ -12,7 +12,7 @@
"idf.openOcdConfigs": [
"board/esp32s3-builtin.cfg"
],
"idf.portWin": "COM5",
"idf.portWin": "COM6",
"idf.flashType": "UART",
"files.associations": {
"ledc.h": "c",

View File

@ -38,10 +38,10 @@ static void button_event_cb(void *arg, void *data)
{
case BUTTON_CMD_POWER_ON:
/*响应电源键按下事件*/
gpio_set_level(BUTTON_PowerOut_IO_NUM, POWER_ON_OUT_LEVEL);
POWER_ON;
break;
case BUTTON_CMD_POWER_OFF:
gpio_set_level(BUTTON_PowerOut_IO_NUM, POWER_OFF_OUT_LEVEL);
POWER_OFF;
break;
case BUTTON_CMD_CENTER_KEY:

View File

@ -16,6 +16,9 @@
#define BUTTON_ACTIVE_LEVEL 0
#define BUTTON_POWERIN_ACTIVE_LEVEL 1
#define POWER_OFF gpio_set_level(BUTTON_PowerOut_IO_NUM, POWER_OFF_OUT_LEVEL);
#define POWER_ON gpio_set_level(BUTTON_PowerOut_IO_NUM, POWER_ON_OUT_LEVEL);
/*¶¨Òå°´¼ü¿ØÖÆÖ¸ÁîÂë*/
enum button_cmd_t
{

View File

@ -1,3 +1,3 @@
idf_component_register(SRCS "FluxMod.c"
REQUIRES espressif__esp-modbus
INCLUDE_DIRS "." "D:/espidfEnv/v5.3.2/esp-idf/examples/protocols/modbus/mb_example_common/include")
INCLUDE_DIRS "." "C:/Espressif/frameworks/esp-idf-v5.3.1/examples/protocols/modbus/mb_example_common/include")

View File

@ -8,25 +8,39 @@ extern lv_obj_t * ui_Batinfo_valueVolume;
extern lv_obj_t * ui_Batinfo_SpinboxBAT;
extern lv_obj_t * ui_Batinfo_BarBAT;
extern lv_obj_t * ui_Home_LabelHeaderBatValue;
extern lv_obj_t * ui_Home_SliderHeaderBat;
/*没有返回值的电源管理任务*/
int Bat_Adc_Value = 0;
adc_oneshot_unit_handle_t adc1_handle;
static int Bat_Adc_Value = 0;
static adc_oneshot_unit_handle_t adc1_handle;
static TaskHandle_t powerTaskHandle;
/*定义变量存储电池电压值*/
static float Bat_Voltage_Value = 0;
void powerTask(void)
{
while (1)
{
ESP_ERROR_CHECK(adc_oneshot_read(adc1_handle, EXAMPLE_ADC1_CHAN8, &Bat_Adc_Value));
/*根据采样值计算电池电压*/
Bat_Voltage_Value = 2 * (float)Bat_Adc_Value * 1.767 / 4095.0 + 2.3;
vTaskDelay(pdMS_TO_TICKS(1000));
lv_bar_set_value(ui_Batinfo_BarBAT,Bat_Adc_Value*2,LV_ANIM_ON);
lv_spinbox_set_value(ui_Batinfo_SpinboxBAT,Bat_Adc_Value*2);
/*配置电池信息页显示*/
lv_bar_set_value(ui_Batinfo_BarBAT,Bat_Adc_Value,LV_ANIM_ON);
lv_spinbox_set_value(ui_Batinfo_SpinboxBAT,Bat_Adc_Value);
lv_label_set_text_fmt(ui_Batinfo_valueVoltage,"%.2fV",Bat_Voltage_Value);
lv_label_set_text_fmt(ui_Batinfo_valueVolume,"%.0fmAh",Bat_Voltage_Value/4.2*2500);
/*设置Home页的显示电量*/
lv_slider_set_value(ui_Home_SliderHeaderBat,Bat_Voltage_Value/4.2*100,LV_ANIM_ON);
lv_label_set_text_fmt(ui_Home_LabelHeaderBatValue,"%.0f%%",Bat_Voltage_Value/4.2*100);
ESP_LOGI("dd","%d",Bat_Adc_Value);
printf("in powerTask the min free stack size is %ld \r\n", (int32_t)uxTaskGetStackHighWaterMark(NULL));
}
}
@ -42,11 +56,13 @@ void powerInit(void)
//-------------ADC1 Config---------------//
adc_oneshot_chan_cfg_t config = {
.bitwidth = ADC_BITWIDTH_DEFAULT,
.atten = ADC_ATTEN_DB_11,
.bitwidth = ADC_BITWIDTH_12,
.atten = ADC_ATTEN_DB_6,
};
ESP_ERROR_CHECK(adc_oneshot_config_channel(adc1_handle, EXAMPLE_ADC1_CHAN8, &config));
xTaskCreate(powerTask,"powerTask",2*1024, NULL, 2, NULL);
xTaskCreate(powerTask,"powerTask",4*1024, NULL, 2, &powerTaskHandle);
}

View File

@ -60,7 +60,7 @@ dependencies:
idf:
source:
type: idf
version: 5.3.2
version: 5.3.1
lvgl/lvgl:
component_hash: d7c1ac037ae6e85d94897f807d6e7ba0946a83e720074fc95a4f6241da9f9f53
dependencies: []
@ -71,7 +71,7 @@ dependencies:
mb_example_common:
dependencies: []
source:
path: D:\espidfEnv\v5.3.2\esp-idf\examples\protocols\modbus\mb_example_common
path: C:\Espressif\frameworks\esp-idf-v5.3.1\examples\protocols\modbus\mb_example_common
type: local
version: '*'
direct_dependencies:
@ -80,6 +80,6 @@ direct_dependencies:
- espressif/esp_lcd_touch_ft5x06
- lvgl/lvgl
- mb_example_common
manifest_hash: 53662b48f2c071d39270339904304e42fe30509bdfe749beea1860fe6ff83816
manifest_hash: 0fff3197c3b0c27c07156e90440cc8d3ca007929576e672eaab5aeb49473afc1
target: esp32s3
version: 2.0.0

View File

@ -370,6 +370,8 @@ void app_main(void)
{
/*初始化FluxButton - 上电之后的第一件事*/
button_init();
/*拉起开机状态*/
POWER_ON;
static lv_disp_draw_buf_t disp_buf; // contains internal graphic buffer(s) called draw buffer(s)
static lv_disp_drv_t disp_drv; // contains callback functions

View File

@ -4,5 +4,5 @@ dependencies:
espressif/esp-modbus: ^1.0.13
mb_example_common:
path:
D:\espidfEnv\v5.3.2\esp-idf/examples/protocols/modbus/mb_example_common
C:/Espressif/frameworks/esp-idf-v5.3.1/examples/protocols/modbus/mb_example_common
espressif/button: ^3.2.0

View File

@ -1,6 +1,6 @@
#
# Automatically generated file. DO NOT EDIT.
# Espressif IoT Development Framework (ESP-IDF) 5.3.2 Project Configuration
# Espressif IoT Development Framework (ESP-IDF) 5.3.1 Project Configuration
#
CONFIG_SOC_MPU_MIN_REGION_SIZE=0x20000000
CONFIG_SOC_MPU_REGIONS_MAX_NUM=8
@ -14,8 +14,6 @@ CONFIG_SOC_GDMA_SUPPORTED=y
CONFIG_SOC_AHB_GDMA_SUPPORTED=y
CONFIG_SOC_GPTIMER_SUPPORTED=y
CONFIG_SOC_LCDCAM_SUPPORTED=y
CONFIG_SOC_LCDCAM_I80_LCD_SUPPORTED=y
CONFIG_SOC_LCDCAM_RGB_LCD_SUPPORTED=y
CONFIG_SOC_MCPWM_SUPPORTED=y
CONFIG_SOC_DEDICATED_GPIO_SUPPORTED=y
CONFIG_SOC_CACHE_SUPPORT_WRAP=y
@ -121,7 +119,6 @@ CONFIG_SOC_GPIO_OUT_RANGE_MAX=48
CONFIG_SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK=0x0001FFFFFC000000
CONFIG_SOC_GPIO_CLOCKOUT_BY_IO_MUX=y
CONFIG_SOC_GPIO_CLOCKOUT_CHANNEL_NUM=3
CONFIG_SOC_GPIO_SUPPORT_HOLD_IO_IN_DSLP=y
CONFIG_SOC_DEDIC_GPIO_OUT_CHANNELS_NUM=8
CONFIG_SOC_DEDIC_GPIO_IN_CHANNELS_NUM=8
CONFIG_SOC_DEDIC_GPIO_OUT_AUTO_ENABLE=y
@ -192,10 +189,6 @@ CONFIG_SOC_LCD_RGB_PANELS=1
CONFIG_SOC_LCD_I80_BUS_WIDTH=16
CONFIG_SOC_LCD_RGB_DATA_WIDTH=16
CONFIG_SOC_LCD_SUPPORT_RGB_YUV_CONV=y
CONFIG_SOC_LCDCAM_I80_NUM_BUSES=1
CONFIG_SOC_LCDCAM_I80_BUS_WIDTH=16
CONFIG_SOC_LCDCAM_RGB_NUM_PANELS=1
CONFIG_SOC_LCDCAM_RGB_DATA_WIDTH=16
CONFIG_SOC_RTC_CNTL_CPU_PD_DMA_BUS_WIDTH=128
CONFIG_SOC_RTC_CNTL_CPU_PD_REG_FILE_NUM=549
CONFIG_SOC_RTC_CNTL_TAGMEM_PD_DMA_BUS_WIDTH=128
@ -338,7 +331,6 @@ CONFIG_SOC_SPI_MEM_SUPPORT_CONFIG_GPIO_BY_EFUSE=y
CONFIG_SOC_SPI_MEM_SUPPORT_WRAP=y
CONFIG_SOC_MEMSPI_TIMING_TUNING_BY_MSPI_DELAY=y
CONFIG_SOC_MEMSPI_CORE_CLK_SHARED_WITH_PSRAM=y
CONFIG_SOC_SPI_MEM_SUPPORT_CACHE_32BIT_ADDR_MAP=y
CONFIG_SOC_COEX_HW_PTI=y
CONFIG_SOC_EXTERNAL_COEX_LEADER_TX_LINE=y
CONFIG_SOC_SDMMC_USE_GPIO_MATRIX=y
@ -366,7 +358,7 @@ CONFIG_IDF_TOOLCHAIN="gcc"
CONFIG_IDF_TARGET_ARCH_XTENSA=y
CONFIG_IDF_TARGET_ARCH="xtensa"
CONFIG_IDF_TARGET="esp32s3"
CONFIG_IDF_INIT_VERSION="5.3.2"
CONFIG_IDF_INIT_VERSION="5.3.1"
CONFIG_IDF_TARGET_ESP32S3=y
CONFIG_IDF_FIRMWARE_CHIP_ID=0x0009
@ -710,7 +702,6 @@ CONFIG_ESP_TLS_USE_DS_PERIPHERAL=y
#
CONFIG_ESP_COEX_ENABLED=y
# CONFIG_ESP_COEX_EXTERNAL_COEXIST_ENABLE is not set
# CONFIG_ESP_COEX_GPIO_DEBUG is not set
# end of Wireless Coexistence
#
@ -901,12 +892,6 @@ CONFIG_ESP_REV_MIN_FULL=0
#
CONFIG_ESP32S3_REV_MAX_FULL=99
CONFIG_ESP_REV_MAX_FULL=99
CONFIG_ESP_EFUSE_BLOCK_REV_MIN_FULL=0
CONFIG_ESP_EFUSE_BLOCK_REV_MAX_FULL=199
#
# Maximum Supported ESP32-S3 eFuse Block Revision (eFuse Block Rev v1.99)
#
# end of Chip revision
#
@ -983,6 +968,7 @@ CONFIG_ESP_SPI_BUS_LOCK_ISR_FUNCS_IN_IRAM=y
#
# LCD Peripheral Configuration
#
CONFIG_LCD_PANEL_IO_FORMAT_BUF_SIZE=32
# CONFIG_LCD_ENABLE_DEBUG_LOG is not set
# CONFIG_LCD_RGB_ISR_IRAM_SAFE is not set
# CONFIG_LCD_RGB_RESTART_IN_VSYNC is not set
@ -999,7 +985,6 @@ CONFIG_ESP_NETIF_USES_TCPIP_WITH_BSD_API=y
# CONFIG_ESP_NETIF_RECEIVE_REPORT_ERRORS is not set
# CONFIG_ESP_NETIF_L2_TAP is not set
# CONFIG_ESP_NETIF_BRIDGE_EN is not set
# CONFIG_ESP_NETIF_SET_DNS_PER_DEFAULT_NETIF is not set
# end of ESP NETIF Adapter
#
@ -1029,7 +1014,6 @@ CONFIG_ESP_PHY_CALIBRATION_MODE=0
# Power Management
#
# CONFIG_PM_ENABLE is not set
# CONFIG_PM_SLP_IRAM_OPT is not set
CONFIG_PM_POWER_DOWN_CPU_IN_LIGHT_SLEEP=y
CONFIG_PM_RESTORE_CACHE_TAGMEM_AFTER_LIGHT_SLEEP=y
# end of Power Management
@ -1067,7 +1051,6 @@ CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=16384
# CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP is not set
CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL=32768
# CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY is not set
# CONFIG_SPIRAM_ALLOW_NOINIT_SEG_EXTERNAL_MEMORY is not set
# end of SPI RAM config
# end of ESP PSRAM
@ -1141,7 +1124,7 @@ CONFIG_ESP_SYSTEM_MEMPROT_FEATURE_LOCK=y
CONFIG_ESP_SYSTEM_EVENT_QUEUE_SIZE=32
CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=2304
CONFIG_ESP_MAIN_TASK_STACK_SIZE=3584
CONFIG_ESP_MAIN_TASK_STACK_SIZE=4096
CONFIG_ESP_MAIN_TASK_AFFINITY_CPU0=y
# CONFIG_ESP_MAIN_TASK_AFFINITY_CPU1 is not set
# CONFIG_ESP_MAIN_TASK_AFFINITY_NO_AFFINITY is not set
@ -1408,7 +1391,6 @@ CONFIG_HAL_DEFAULT_ASSERTION_LEVEL=2
CONFIG_HAL_WDT_USE_ROM_IMPL=y
CONFIG_HAL_SPI_MASTER_FUNC_IN_IRAM=y
CONFIG_HAL_SPI_SLAVE_FUNC_IN_IRAM=y
# CONFIG_HAL_ECDSA_GEN_SIG_CM is not set
# end of Hardware Abstraction Layer (HAL) and Low Level (LL)
#
@ -1555,9 +1537,6 @@ CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY=y
# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0 is not set
# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU1 is not set
CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x7FFFFFFF
CONFIG_LWIP_IPV6_ND6_NUM_PREFIXES=5
CONFIG_LWIP_IPV6_ND6_NUM_ROUTERS=3
CONFIG_LWIP_IPV6_ND6_NUM_DESTINATIONS=10
# CONFIG_LWIP_PPP_SUPPORT is not set
CONFIG_LWIP_IPV6_MEMP_NUM_ND6_QUEUE=3
CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS=5
@ -1590,10 +1569,8 @@ CONFIG_LWIP_SNTP_MAXIMUM_STARTUP_DELAY=5000
#
# DNS
#
CONFIG_LWIP_DNS_MAX_HOST_IP=1
CONFIG_LWIP_DNS_MAX_SERVERS=3
# CONFIG_LWIP_FALLBACK_DNS_SERVER_SUPPORT is not set
# CONFIG_LWIP_DNS_SETSERVER_WITH_NETIF is not set
# end of DNS
CONFIG_LWIP_BRIDGEIF_MAX_PORTS=7
@ -1617,8 +1594,6 @@ CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_NONE=y
CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_NONE=y
# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_DEFAULT is not set
# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_CUSTOM is not set
CONFIG_LWIP_HOOK_DNS_EXT_RESOLVE_NONE=y
# CONFIG_LWIP_HOOK_DNS_EXT_RESOLVE_CUSTOM is not set
# CONFIG_LWIP_HOOK_IP6_INPUT_NONE is not set
CONFIG_LWIP_HOOK_IP6_INPUT_DEFAULT=y
# CONFIG_LWIP_HOOK_IP6_INPUT_CUSTOM is not set
@ -1682,7 +1657,6 @@ CONFIG_MBEDTLS_HAVE_TIME=y
# CONFIG_MBEDTLS_HAVE_TIME_DATE is not set
CONFIG_MBEDTLS_ECDSA_DETERMINISTIC=y
CONFIG_MBEDTLS_SHA512_C=y
# CONFIG_MBEDTLS_SHA3_C is not set
CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y
# CONFIG_MBEDTLS_TLS_SERVER_ONLY is not set
# CONFIG_MBEDTLS_TLS_CLIENT_ONLY is not set
@ -1759,7 +1733,6 @@ CONFIG_MBEDTLS_ECP_NIST_OPTIM=y
# CONFIG_MBEDTLS_HKDF_C is not set
# CONFIG_MBEDTLS_THREADING_C is not set
CONFIG_MBEDTLS_ERROR_STRINGS=y
CONFIG_MBEDTLS_FS_IO=y
# end of mbedTLS
#
@ -1887,7 +1860,6 @@ CONFIG_SPI_FLASH_HPM_DC_AUTO=y
CONFIG_SPI_FLASH_SUSPEND_QVL_SUPPORTED=y
# CONFIG_SPI_FLASH_AUTO_SUSPEND is not set
CONFIG_SPI_FLASH_SUSPEND_TSUS_VAL_US=50
# CONFIG_SPI_FLASH_FORCE_ENABLE_XMC_C_SUSPEND is not set
# end of Optional and Experimental Features (READ DOCS FIRST)
# end of Main Flash configuration
@ -2013,22 +1985,16 @@ CONFIG_USB_HOST_HW_BUFFER_BIAS_BALANCED=y
# CONFIG_USB_HOST_HW_BUFFER_BIAS_PERIODIC_OUT is not set
#
# Hub Driver Configuration
#
#
# Root Port configuration
# Root Hub configuration
#
CONFIG_USB_HOST_DEBOUNCE_DELAY_MS=250
CONFIG_USB_HOST_RESET_HOLD_MS=30
CONFIG_USB_HOST_RESET_RECOVERY_MS=30
CONFIG_USB_HOST_SET_ADDR_RECOVERY_MS=10
# end of Root Port configuration
# CONFIG_USB_HOST_HUBS_SUPPORTED is not set
# end of Hub Driver Configuration
# end of Root Hub configuration
# CONFIG_USB_HOST_ENABLE_ENUM_FILTER_CALLBACK is not set
# CONFIG_USB_HOST_EXT_HUB_SUPPORT is not set
CONFIG_USB_OTG_SUPPORTED=y
# end of USB-OTG
@ -2063,6 +2029,7 @@ CONFIG_WL_SECTOR_SIZE=4096
#
CONFIG_WIFI_PROV_SCAN_MAX_ENTRIES=16
CONFIG_WIFI_PROV_AUTOSTOP_TIMEOUT=30
# CONFIG_WIFI_PROV_BLE_FORCE_ENCRYPTION is not set
CONFIG_WIFI_PROV_STA_ALL_CHANNEL_SCAN=y
# CONFIG_WIFI_PROV_STA_FAST_SCAN is not set
# end of Wi-Fi Provisioning Manager
@ -2225,7 +2192,7 @@ CONFIG_LV_ASSERT_HANDLER_INCLUDE="assert.h"
# CONFIG_LV_USE_PERF_MONITOR is not set
# CONFIG_LV_USE_REFR_DEBUG is not set
# CONFIG_LV_SPRINTF_CUSTOM is not set
# CONFIG_LV_SPRINTF_USE_FLOAT is not set
CONFIG_LV_SPRINTF_USE_FLOAT=y
CONFIG_LV_USE_USER_DATA=y
# CONFIG_LV_ENABLE_GC is not set
# end of Others
@ -2508,7 +2475,7 @@ CONFIG_ESP32S3_DEFAULT_CPU_FREQ_160=y
CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ=160
CONFIG_SYSTEM_EVENT_QUEUE_SIZE=32
CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE=2304
CONFIG_MAIN_TASK_STACK_SIZE=3584
CONFIG_MAIN_TASK_STACK_SIZE=4096
CONFIG_CONSOLE_UART_DEFAULT=y
# CONFIG_CONSOLE_UART_CUSTOM is not set
# CONFIG_CONSOLE_UART_NONE is not set