From ed02ba669c5898bec4abb01843bb480beaec33a0 Mon Sep 17 00:00:00 2001 From: WXK <287788329@qq.com> Date: 星期三, 17 一月 2024 10:40:02 +0800 Subject: [PATCH] 版本V1.3,修复lora接收丢包的bug。 --- APL/APL.c | 56 ++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 42 insertions(+), 14 deletions(-) diff --git a/APL/APL.c b/APL/APL.c index 4279986..25e7e01 100644 --- a/APL/APL.c +++ b/APL/APL.c @@ -197,22 +197,24 @@ // l_bIsVibration = HIDO_TRUE; nomove_time=0; } - if(GPIO_Pin == GPIO_PIN_9) - { - HAL_ResumeTick(); +// if(GPIO_Pin == GPIO_PIN_9)//按钮关机 +// { +// HAL_ResumeTick(); - SystemClock_Config(); - MX_Init(); - Uart_ReInit(UART_ID_DBG); - Uart_ReInit(UART_ID_LORA); - Uart_ReInit(UART_ID_GPS); - +// SystemClock_Config(); +// MX_Init(); +// Uart_ReInit(UART_ID_DBG); +// Uart_ReInit(UART_ID_LORA); +// Uart_ReInit(UART_ID_GPS); +// - - PowerDownDetect(); - } +// +// PowerDownDetect(); +// } } +extern uint8_t lora_rxbuf[256]; +extern uint8_t lora_rxbufnum; extern void Set4LEDColor_Off(void); uint8_t lora_sendfinalbag_num; void Lora_Sendfinalbag_Poll() @@ -221,7 +223,9 @@ if(lp_time-lora_sendfinalbag_time>10&&lora_sendfinalbag_flag) { lora_sendfinal_rx_bag_flag=1; - Lora_SendData((HIDO_UINT8 *)GPS_final_data,GPS_final_changdu); + Lora_SendData((HIDO_UINT8 *)GPS_final_data,GPS_final_changdu); //发送数据 + memset(&lora_rxbuf,0,sizeof(lora_rxbuf));//发一次清一次rx的缓存 + lora_rxbufnum=0; lora_sendfinalbag_time=lp_time; lora_sendfinalbag_num=lora_sendfinalbag_num+1; loraled=BLUE; @@ -327,6 +331,21 @@ uint32_t GPSDateTime =0; uint8_t uwbqiehuangps_flag; extern uint8_t nomove_flag; +HIDO_INT32 NOWAKEUP_Poll(void) +{ + while(1) + { + HIDO_TimerPoll(); + Lora_Poll();//lora接收函数 + IdleTask(); + if((Lora_IsIdle() == HIDO_TRUE)/*为了防止lora初始化的时候进入休眠*/ + &&(IsTypecCActive() == HIDO_FALSE) /*5v输入检测时不休眠*/) + { + Power_Sleep(); + } + } +} +extern uint8_t fengming_time,fengming_flag; HIDO_INT32 APL_Poll(void) { // ST_RTCDateTime stNow; @@ -346,7 +365,7 @@ if(((Lora_IsIdle() == HIDO_TRUE)/*为了防止lora初始化的时候进入休眠*/ && (GPS_IsIdle() == HIDO_TRUE)/*防止gps工作时进入休眠*/ &&(lora_sendfinal_rx_bag_flag==0)//防止lora在2s等待接收的时候进入休眠 - && (IsTypecCActive() == HIDO_FALSE)) /*5v输入检测时不休眠*/||nomove_flag==1/*静止1小时立刻休眠。*/) + && (IsTypecCActive() == HIDO_FALSE)/*5v输入检测时不休眠*/&&(fangchai_flag==0)&&fengming_flag==0) ||nomove_flag==1/*静止1小时立刻休眠。*/) { ////// if(Lora_IsIdle() == HIDO_TRUE) Power_Sleep(); @@ -418,6 +437,8 @@ l_eGPSState = GPS_OFF; // uwbqiehuangps_flag=1;//如果放开,就是uwb切到gps会立刻工作一次,不放开就是就算uwb切换到gps也要判断是否过了一小时 } + if(fengming_flag==1) + {Beep_On();} } else { @@ -430,13 +451,20 @@ /* 拆卸告警 */ if(IsDisassemblyAlarm()) { + if(lp_time%2==1) Beep_On(); + else + Beep_Off(); + fangchai_flag=1; } else { + if(fengming_flag==0) + { Beep_Off(); fangchai_flag=0; + } } #endif -- Gitblit v1.9.3