From 31a18a379b5d7073705895dba364ca3b76d5d44e Mon Sep 17 00:00:00 2001 From: WXK <287788329@qq.com> Date: 星期三, 13 八月 2025 09:54:25 +0800 Subject: [PATCH] 开发完成 --- keil/include/main/main.c | 204 +++++++++----------------------------------------- 1 files changed, 39 insertions(+), 165 deletions(-) diff --git a/keil/include/main/main.c b/keil/include/main/main.c index bfa8c65..9567729 100644 --- a/keil/include/main/main.c +++ b/keil/include/main/main.c @@ -315,7 +315,7 @@ spi_init(); // // 模式判断脚和spi nrst脚初始化 board_mode_pin_init(); - Program_Init(); + Program_Init(); //board_led_on(BOARD_LED_1); #endif Board_LORA_NVIC_Init(Lora_irq_handler); @@ -370,183 +370,57 @@ power_enter_power_down_mode(1); int_unlock(lock); } +uint8_t result11; int main(void) { // Initialize MCU system board_init(); - // Disable watchdog timer wdt_close(WDT_ID0); - LOG_INFO(TRACE_MODULE_APP, "UCI FiRa example\r\n"); -// delay_ms(500); -// lora_in_sleep(); -// power_init(); -// mcu_deep_sleep(); - if(gpio_pin_get_val(SLEEP_PIN)) -// if(1) - { - if(gpio_pin_get_val(MODE_CHANGE_PIN))//记得改回来与正式的相反 -// if(0)//记得改回来与正式的相反 - { - 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(); - - // Initialize os - - // - // Set up timers for the WSF scheduler. - // - WsfOsInit(); - WsfTimerInit(); - sys_tick_callback_set(WsfTimerUpdateTicks); - - // - // Initialize a buffer pool for WSF dynamic memory needs. - // - uint32_t wsfBufMemLen = WsfBufInit(WSF_BUF_POOLS, poolDescriptors); - - if (wsfBufMemLen > FREE_MEM_SIZE) { - LOG_INFO(TRACE_MODULE_APP, "Memory pool is not enough %d\r\n", wsfBufMemLen - FREE_MEM_SIZE); - } -// - // Create app task - // - wsfHandlerId_t handlerId = WsfOsSetNextHandler(app_handler); - app_init(handlerId); - - // - // Create ranging task or test task - // - handlerId = WsfOsSetNextHandler(ranging_handler); - ranging_init(handlerId); - -#ifdef UWB_UCI_TEST_EN - // Create test task - handlerId = WsfOsSetNextHandler(uwb_test_handler); - uwb_test_init(handlerId); -#endif - -#ifndef MY_MODE - uwb_open(); - - // set advanced parameters - struct PHY_ADV_CONFIG_T adv_config = - { - // RPM0: 40, RPM3: 60 - .thres_fap_detect = 60, - // RPM0: 4, RPM3: 8 - .nth_scale_factor = 8, - // RFrame SP0: 0/1, Others: 0/1/2/3 - .ranging_performance_mode = 3, -#if RX_ANT_PORTS_NUM == 4 - .skip_weakest_port_en = 1, -#else - .skip_weakest_port_en = 0, -#endif - }; - phy_adv_params_configure(&adv_config); - - // which RX ports will be used for AoA/PDoA - phy_rx_ant_mode_set(RX_ANT_PORTS_COMBINATION); - - uwbs_init(); - uwb_app_config.ranging_flow_mode = (uint8_t)(RANGING_FLOW_FIRA); - uwb_app_config.filter_en = (uint8_t)(FILTER_EN); - uwb_app_config.session_param.tx_power_level = board_param.tx_power_fcc[CALIB_CH(uwb_app_config.ppdu_params.ch_num)]; - uwb_app_config.ppdu_params.rx_ant_id = (uint8_t)(RX_MAIN_ANT_PORT); - -#elif defined MY_MODE - Uwb_init();//默认为我们测距配置 - OpenUWB(); - uart_receive(UART_ID1,m_EUART_DMA_RXBuf,EUART_RX_BUF_SIZE,uart_receive_callback); -#endif - // - // Create UCI transmission layer task - // - handlerId = WsfOsSetNextHandler(uci_tl_handler); - uci_tl_init(handlerId); - - // Initialize low power mode - power_init(); -#if LOW_POWER_EN - power_mode_request(POWER_UNIT_USER, POWER_MODE_POWER_DOWN); - uwb_app_config.low_power_en = 1; -#else - power_mode_request(POWER_UNIT_USER, POWER_MODE_SLEEP); - uwb_app_config.low_power_en = 0; -#endif - - // Enable sleep timer - sleep_timer_open(true, SLEEP_TIMER_MODE_ONESHOT, sleep_timer_callback); - - while (1) - { - wsfOsDispatcher(); - 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{ - 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,"固件版本:MK_lora升级模式 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(); + SwitchLoraSettings(0x1f4,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); + power_init(); + uint16_t tmp = 0xFFFF; + result11 = flash_open(FLASH_ID0,NULL); + if(!result11) + { + LOG_INFO(TRACE_MODULE_APP," 打开flash成功\r\n"); + } + result11 = flash_erase(FLASH_ID0, APP_CONFIG_IAPFLAG_SECTOR_ADDR, FLASH_SECTOR_SIZE);//擦除APPFLAG + if(!result11) + { + LOG_INFO(TRACE_MODULE_APP," 擦除标志位成功\r\n"); + } + result11 = flash_write_nbytes(FLASH_ID0,APP_CONFIG_IAPFLAG_MAP,(uint8_t*)&tmp,2); + if(!result11) + { + LOG_INFO(TRACE_MODULE_APP," 写入标志位FFFF成功\r\n"); + } + delay_ms(100); + 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();//我们的测距逻辑 - 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(); - } + while (1) + { +// uwb_app_poll();//我们的测距逻辑 +// if(flag_secondtask) +// { +// flag_secondtask = 0; +// SecondTask(); +// //Lora_Tx_Poll(); +// } +// Lora_Tx_Poll(); + LoraUp_Poll();//网关升级 + 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