From d715e84d0578eebc57d6393fb8eff70ff58acad1 Mon Sep 17 00:00:00 2001 From: chen <15335560115@163.com> Date: 星期五, 25 七月 2025 17:24:42 +0800 Subject: [PATCH] Merge branch 'MK_IPhone_测试' of http://47.108.70.204:60062/r/ChinaUWBProject into MK_IPhone_测试 --- keil/include/main/main.c | 109 ++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 89 insertions(+), 20 deletions(-) diff --git a/keil/include/main/main.c b/keil/include/main/main.c index 4399dbf..1183646 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. @@ -129,6 +130,8 @@ { // LOG_INFO(TRACE_MODULE_APP, "Wake up by sleep timer %d\r\n", time); } +extern uint8_t start_wait_flag; +extern int16_t end_count1; static void sleep_timer_callback_normal(void *dev, uint32_t time) { if(secondtask_count++%2==0) @@ -137,12 +140,18 @@ }else{ flag_secondtask = 0; } + if(start_wait_flag)//lora升级等待超时标志 + { + if(end_count1--<=0) + start_wait_flag=0; + } // if(delaysleep_count>0) // delaysleep_count--; } void Program_Init(void) { Usart1ParseDataCallback = UsartParseDataHandler;//需改为默认为gps处理,UsartParseDataHandler为升级处理当调试时候改为 + parameter_init_anchor();//g_com_map表初始化角色默认为基站 dev_id=g_com_map[DEV_ID];//这里不太对 group_id=(uint8_t)g_com_map[GROUP_ID];//组ID @@ -168,7 +177,11 @@ port = g_com_map[TCP_PORT]; g_com_map[VERSION] = (1<<8)|0; LOG_INFO(TRACE_MODULE_APP,"设备ID: %x .\r\n",dev_id); - LOG_INFO(TRACE_MODULE_APP,"固件版本:4G-GPS定位手环 V%d.%d. \r\n",g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff); +// 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) @@ -182,12 +195,14 @@ } void SecondTask(void) {static uint8_t second_count; + if(second_count++>60) { second_count = 0; MinuteTask(); } - lora_tx_flag=1; + lora_tx_flag=1; + //Lora_Tx_Poll(); // //UWB状态检测 //if(!power_low_flag)//低供电下不需要检测重连 @@ -296,11 +311,12 @@ // Configure IO_04 for RF Switch gpio_pin_set_dir(IO_PIN_4, GPIO_DIR_OUT, 0); #else - Program_Init(); + spi_init(); - // 模式判断脚和spi nrst脚初始化 +// // 模式判断脚和spi nrst脚初始化 board_mode_pin_init(); -// board_led_on(BOARD_LED_1); + Program_Init(); + //board_led_on(BOARD_LED_1); #endif Board_LORA_NVIC_Init(Lora_irq_handler); board_configure(); @@ -336,8 +352,24 @@ { uart_receive(UART_ID1,m_EUART_DMA_RXBuf,EUART_RX_BUF_SIZE,uart_receive_callback); } - +void uart0_receive_callback(void *dev, uint32_t err_code) +{ + uart_receive(UART_ID0,m_EUART0_DMA_RXBuf,EUART0_RX_BUF_SIZE,uart0_receive_callback); +} 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 @@ -345,10 +377,15 @@ // Disable watchdog timer wdt_close(WDT_ID0); LOG_INFO(TRACE_MODULE_APP, "UCI FiRa example\r\n"); - if(gpio_pin_get_val(MODE_CHANGE_PIN)) +// delay_ms(500); +// lora_in_sleep(); +// power_init(); +// mcu_deep_sleep(); + 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(); @@ -444,38 +481,70 @@ while (1) { wsfOsDispatcher(); -#ifdef MY_MODE - if(normal_flag) - { - IdleTask(); - } -#endif power_manage(); + if(!gpio_pin_get_val(SLEEP_PIN)) + { + 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(); + } } - }else{ -// adc_open(&usr_adc_cfg); + }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(); + //LOG_INFO(TRACE_MODULE_APP," 切换6\r\n"); SwitchLoraSettings(478,7,22); Uwb_init();//默认为我们测距配置 OpenUWB(); uart_receive(UART_ID1,m_EUART_DMA_RXBuf,EUART_RX_BUF_SIZE,uart_receive_callback); + uart_receive(UART_ID0,m_EUART0_DMA_RXBuf,EUART0_RX_BUF_SIZE,uart0_receive_callback); power_init(); sleep_timer_open(true, SLEEP_TIMER_MODE_RELOAD, sleep_timer_callback_normal); 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();//我们的测距逻辑 - Lora_Tx_Poll(); - if(flag_secondtask) { flag_secondtask = 0; SecondTask(); + //Lora_Tx_Poll(); } + Lora_Tx_Poll(); + //LoraUp_Poll();//网关升级 + if(!gpio_pin_get_val(SLEEP_PIN)) + { + 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(); + } 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