From 6f6d3bc73b0b59b67ec7c3acfe6cd966523741b3 Mon Sep 17 00:00:00 2001 From: yincheng.zhong <634916154@qq.com> Date: 星期三, 24 四月 2024 10:04:12 +0800 Subject: [PATCH] V1.21 修改LED显示,增加秒延迟功能 --- Src/main.c | 112 ++++++++++++++++++++++++++++++------------------------- 1 files changed, 61 insertions(+), 51 deletions(-) diff --git a/Src/main.c b/Src/main.c index ce34482..dbdb8ad 100644 --- a/Src/main.c +++ b/Src/main.c @@ -125,7 +125,7 @@ uint8_t anjian_flag; uint8_t stationary_flag; uint16_t stationary_num; -uint16_t recv_end_time; +uint16_t recv_end_time,ledon_time; u16 GetLPTime(void) { u16 count=HAL_LPTIM_ReadCounter(&hlptim1); @@ -207,7 +207,12 @@ extern uint8_t xie_flag; float motor_keeptime; void IdleTask(void) -{ +{uint16_t current_lptime = GetLPTime(); + if(current_lptime-ledon_time>100||current_lptime<ledon_time-500) + { + // Set4LEDColor(0,0,0,0); + Set4LEDColor_Off(); + } if(HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin)) { state5v=1; LoraInit(); @@ -306,7 +311,7 @@ hardware_pici = STMFLASH_ReadHalfWord(FLASH_HARDWARE_VERSION_MAP+2); hardware_type = STMFLASH_ReadHalfWord(FLASH_HARDWARE_VERSION_MAP+4); //deca_sleep(1000); - g_com_map[VERSION] = (1<<8)|17; + g_com_map[VERSION] = (1<<8)|21; // g_com_map[DEV_ID]=1158; // #ifdef DEBUG_MODE // // g_com_map[GROUP_ID]=21; @@ -599,15 +604,17 @@ extern uint8_t rec_secdelay; void Lora_Send_Poll(void) { - if(rec_secdelay>0) - { - rec_secdelay--; - return; - } + if(Lora_send_flag) { debugnum++; - Lora_send_flag=0; + Lora_send_flag=0; + if(rec_secdelay>0) + { + loraled=YELLOW; + rec_secdelay--; + return; + } loraled=BLUE; LoraReportPoll(); flag_onesecond = 1; @@ -618,19 +625,19 @@ extern volatile uint8_t recv_end_flag; //一帧数据接收完成标志 void Lpuart_rx_Poll(void) { -if(recv_end_flag == 1) //接收完成标志 -{ - uint16_t i; - recv_end_time=0; - for(i=0;i<GPS_SIZE;i++) - {GPS_RecvFsm(GPS_GGAdate[i]);} -//GPS_ParseGGA(GPS_GGAdate, rx_len); -memset(GPS_GGAdate,0,GPS_SIZE); -rx_len = 0;//清除计数 -recv_end_flag = 0;//清除接收结束标志位 -fangzhijinrushuimian_flag=0; -} -HAL_UART_Receive_DMA(&hlpuart1,GPS_GGAdate,LPUART_SIZE);//重新打开DMA接收 + if(recv_end_flag == 1) //接收完成标志 + { + uint16_t i; + recv_end_time=0; + for(i=0;i<GPS_SIZE;i++) + {GPS_RecvFsm(GPS_GGAdate[i]);} + //GPS_ParseGGA(GPS_GGAdate, rx_len); + memset(GPS_GGAdate,0,GPS_SIZE); + rx_len = 0;//清除计数 + recv_end_flag = 0;//清除接收结束标志位 + fangzhijinrushuimian_flag=0; + } + HAL_UART_Receive_DMA(&hlpuart1,GPS_GGAdate,LPUART_SIZE);//重新打开DMA接收 } /* USER CODE END 0 */ @@ -1291,38 +1298,41 @@ if(chongqi_flag==0&&shengji_flag==0) { SystemClock_Config(); -Set4LEDColor(powerled,loraled,gpsled,uwbled); -Bat_Percent_Poll(); + Set4LEDColor(uwbled,gpsled,loraled,powerled); //代码有BUG需要执行2次,否则电源灯不亮 + Set4LEDColor(uwbled,gpsled,loraled,powerled); + //Set4LEDColor(powerled,loraled,gpsled,uwbled); + ledon_time = GetLPTime(); + Bat_Percent_Poll(); if(state5v==0) { - if(yuyin_no_sleep_flag==0) - { - recv_end_time++; - if(recv_end_time>NOGPS_RESET_TIME) - {HAL_NVIC_SystemReset();} + if(yuyin_no_sleep_flag==0) + { + recv_end_time++; + if(recv_end_time>NOGPS_RESET_TIME) + {HAL_NVIC_SystemReset();} + } + Yuying_Poll(); + Lora_send_flag=1; + if(nomove_count++>g_com_map[STATIONARY_TIME]) + { + stationary_flag = 1; + } + else + { + stationary_flag = 0; + } + if(nomove_count>=g_com_map[NOMOVESLEEP_TIME]-1&&imu_enable) + { + gotosleep_flag=1; + } else { + gotosleep_flag=0; + } } - Yuying_Poll(); - Lora_send_flag=1; - if(nomove_count++>g_com_map[STATIONARY_TIME]) - { - stationary_flag = 1; - } - else - { - stationary_flag = 0; - } - if(nomove_count>=g_com_map[NOMOVESLEEP_TIME]-1&&imu_enable) - { - gotosleep_flag=1; - } else { - gotosleep_flag=0; - } - } - powerled=LEDOFF; - loraled=LEDOFF; - gpsled=LEDOFF; - uwbled=LEDOFF; -Set4LEDColor_Off(); +// powerled=LEDOFF; +// loraled=LEDOFF; +// gpsled=LEDOFF; +// uwbled=LEDOFF; +// Set4LEDColor_Off(); } HAL_IWDG_Refresh(&hiwdg); } -- Gitblit v1.9.3