From bee670865494cd5dc6086495bf10a7d5496b2864 Mon Sep 17 00:00:00 2001 From: chen <15335560115@163.com> Date: 星期四, 12 六月 2025 10:23:08 +0800 Subject: [PATCH] 加入休眠引脚判断版本,isp脚换成别的脚,代码未修改对应引脚 --- keil/include/main/main.c | 55 ++++++++++++++++++++++++++++++++++++++----------------- keil/include/board/board.c | 4 ++++ user_config.h | 1 + 3 files changed, 43 insertions(+), 17 deletions(-) diff --git a/keil/include/board/board.c b/keil/include/board/board.c index 302905e..4f1a101 100644 --- a/keil/include/board/board.c +++ b/keil/include/board/board.c @@ -415,6 +415,10 @@ io_pin_mux_set(MODE_CHANGE_PIN, IO_FUNC0); gpio_pin_set_dir( MODE_CHANGE_PIN, GPIO_DIR_IN, 0); io_pull_set(MODE_CHANGE_PIN , IO_PULL_DOWN, IO_PULL_UP_LEVEL2); + // 判断是休眠还是工作模式 + io_pin_mux_set(SLEEP_PIN, IO_FUNC0); + gpio_pin_set_dir(SLEEP_PIN, GPIO_DIR_IN, 0); + io_pull_set(SLEEP_PIN , IO_PULL_DOWN, IO_PULL_UP_LEVEL2); //初始化NRST脚 io_pin_mux_set(LORA_NRST, IO_FUNC0); gpio_pin_set_dir(LORA_NRST , GPIO_DIR_OUT, 1); diff --git a/keil/include/main/main.c b/keil/include/main/main.c index 0417d55..9c9f2c8 100644 --- a/keil/include/main/main.c +++ b/keil/include/main/main.c @@ -170,12 +170,12 @@ port = g_com_map[TCP_PORT]; g_com_map[VERSION] = (1<<8)|0; LOG_INFO(TRACE_MODULE_APP,"设备ID: %x .\r\n",dev_id); - if(gpio_pin_get_val(MODE_CHANGE_PIN)) - LOG_INFO(TRACE_MODULE_APP,"固件版本:MK_Air_tag模式 V%d.%d. \r\n",g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff); - else{ - LOG_INFO(TRACE_MODULE_APP,"固件版本:MK_免布线模式 V%d.%d. \r\n",g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff); - } - //LOG_INFO(TRACE_MODULE_APP,"服务器地址: %d.%d.%d.%d:%d.\r\n",ip0,ip1,ip2,ip3,port); +// if(gpio_pin_get_val(MODE_CHANGE_PIN)) +// LOG_INFO(TRACE_MODULE_APP,"固件版本:MK_Air_tag模式 V%d.%d. \r\n",g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff); +// else{ +// LOG_INFO(TRACE_MODULE_APP,"固件版本:MK_免布线模式 V%d.%d. \r\n",g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff); +// } + LOG_INFO(TRACE_MODULE_APP,"服务器地址: %d.%d.%d.%d:%d.\r\n",ip0,ip1,ip2,ip3,port); } void MinuteTask(void) { @@ -351,6 +351,16 @@ } uint8_t bat_percent; uint8_t stationary_flag; +void mcu_deep_sleep(void) +{ + uint32_t lock; + trace_flush(); + lock = int_lock(); + LOG_INFO(TRACE_MODULE_APP, "进入休眠模式\r\n"); + sleep_timer_stop(); + power_enter_power_down_mode(1); + int_unlock(lock); +} int main(void) { // Initialize MCU system @@ -358,8 +368,12 @@ // Disable watchdog timer wdt_close(WDT_ID0); LOG_INFO(TRACE_MODULE_APP, "UCI FiRa example\r\n"); + delay_ms(300);//使log打印完毕 + if(gpio_pin_get_val(SLEEP_PIN)) + { if(gpio_pin_get_val(MODE_CHANGE_PIN))//记得改回来与正式的相反 { + LOG_INFO(TRACE_MODULE_APP,"固件版本:MK_Air_tag模式 V%d.%d. \r\n",g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff); // Platform init for WSF PalSysInit(); @@ -455,16 +469,14 @@ while (1) { wsfOsDispatcher(); -#ifdef MY_MODE - if(normal_flag) - { - IdleTask(); - } -#endif power_manage(); + if(!gpio_pin_get_val(SLEEP_PIN)) + { + mcu_deep_sleep(); + } } }else{ - + LOG_INFO(TRACE_MODULE_APP,"固件版本:MK_免布线模式 V%d.%d. \r\n",g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff); uart0_Init_normal(); Lora_1268_Init(); SwitchLoraSettings(478,7,22); @@ -478,8 +490,6 @@ while (1) { uwb_app_poll();//我们的测距逻辑 - - if(flag_secondtask) { flag_secondtask = 0; @@ -487,11 +497,22 @@ //Lora_Tx_Poll(); } Lora_Tx_Poll(); - + if(!gpio_pin_get_val(SLEEP_PIN)) + { + mcu_deep_sleep(); + } IdleTask(); } } - +}else{ + +// while(1) +// { +// LOG_INFO(TRACE_MODULE_APP, "进入休眠模式\r\n"); +// } + power_init(); +mcu_deep_sleep(); +} } void app_restore_from_power_down(void) diff --git a/user_config.h b/user_config.h index 79fa190..9ca9821 100644 --- a/user_config.h +++ b/user_config.h @@ -337,6 +337,7 @@ #define LORA_BUSY IO_PIN_2 #define LORA_NRST IO_PIN_4 #define SOS_PIN IO_PIN_4 //这个未定义 +#define SLEEP_PIN IO_PIN_3 /* =========================================================================================================================== */ /* ================ End ================ */ /* =========================================================================================================================== */ -- Gitblit v1.9.3