From b13574876322e59f75f26ac38f72c6b19c9d4aba Mon Sep 17 00:00:00 2001 From: chen <15335560115@163.com> Date: 星期五, 27 六月 2025 14:02:08 +0800 Subject: [PATCH] 刚解决完网关下发会导致异常问题,但蓝牙那边mk给蓝牙发未配置成功未解决,开始调lora功耗 --- keil/include/main/main.c | 75 +++++++++++++++++++++++++++---------- 1 files changed, 54 insertions(+), 21 deletions(-) diff --git a/keil/include/main/main.c b/keil/include/main/main.c index 0417d55..03c07bf 100644 --- a/keil/include/main/main.c +++ b/keil/include/main/main.c @@ -118,6 +118,7 @@ uint8_t group_id,enable_sleep_count; uint32_t dev_id; uint16_t disoffset; +uint16_t set_mk_time; uint8_t flag_sleeptimer,flag_secondtask,secondtask_count; float nomove_count; // Default pool descriptor. @@ -170,12 +171,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) { @@ -306,13 +307,13 @@ #else spi_init(); - // 模式判断脚和spi nrst脚初始化 +// // 模式判断脚和spi nrst脚初始化 board_mode_pin_init(); Program_Init(); -// board_led_on(BOARD_LED_1); + //board_led_on(BOARD_LED_1); #endif Board_LORA_NVIC_Init(Lora_irq_handler); - board_configure(); +// board_configure(); } void app_process_handle(uint8_t msg_id, const void *param) @@ -351,6 +352,18 @@ } uint8_t bat_percent; uint8_t stationary_flag; +extern uint8_t send_flag; +extern uint8_t txdone; +void mcu_deep_sleep(void) +{ + uint32_t lock; + trace_flush(); + + lock = int_lock(); + sleep_timer_stop(); + power_enter_power_down_mode(1); + int_unlock(lock); +} int main(void) { // Initialize MCU system @@ -358,8 +371,12 @@ // Disable watchdog timer wdt_close(WDT_ID0); LOG_INFO(TRACE_MODULE_APP, "UCI FiRa example\r\n"); + + 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 +472,16 @@ while (1) { wsfOsDispatcher(); -#ifdef MY_MODE - if(normal_flag) - { - IdleTask(); - } -#endif power_manage(); + if(!gpio_pin_get_val(SLEEP_PIN)) + { + gpio_pin_clr(LORA_NRST);//lora休眠 + LOG_INFO(TRACE_MODULE_APP, "进入休眠模式\r\n"); + mcu_deep_sleep(); + } } - }else{ - + }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); @@ -477,9 +494,12 @@ sleep_timer_start(__MS_TO_32K_CNT(SLEEP_TIMER_NUM));//测试 while (1) { + if(send_flag) + { + LOG_INFO(TRACE_MODULE_APP,"发送数量%d. \r\n",txdone); + send_flag=0; + } uwb_app_poll();//我们的测距逻辑 - - if(flag_secondtask) { flag_secondtask = 0; @@ -487,11 +507,24 @@ //Lora_Tx_Poll(); } Lora_Tx_Poll(); - +// if(!gpio_pin_get_val(SLEEP_PIN)) +// { +// //gpio_pin_clr(LORA_NRST);//lora休眠 +// LOG_INFO(TRACE_MODULE_APP, "进入休眠模式\r\n"); +// mcu_deep_sleep(); +// } IdleTask(); } } - +}else{ +//delay_ms(300); + LOG_INFO(TRACE_MODULE_APP, "进入休眠模式\r\n"); + //gpio_pin_clr(LORA_NRST);//lora休眠 +// spi_close(SPI_ID0); + lora_in_sleep(); + power_init(); + mcu_deep_sleep(); +} } void app_restore_from_power_down(void) -- Gitblit v1.9.3