| | |
| | | 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); |
| | |
| | | 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(); |
| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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 */ |
| | | |
| | |
| | | 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); |
| | | } |