1
WXK
2023-08-28 aa08ceb38550e9e6f1ee2d74e1d57339fc6888a6
Core/Src/main.c
@@ -93,6 +93,7 @@
   u16 count=HAL_LPTIM_ReadCounter(&hlptim1);
 return count*LPTIMER_LSB/1000;
}   
extern void DebugPoll(void);
void IdleTask(void)
{
DebugPoll();
@@ -111,10 +112,13 @@
extern uint8_t youxiao_ceju;
uint16_t uwb_work_num;
uint8_t  GPS_ON_flag;
extern void Set4LEDColor_Off(void);
extern HIDO_VOID Power_GPS_LoraOff(HIDO_VOID);
void Program_Init(void)
{   float temp;
   uint16_t temp2;
   uint16_t i;
{
//    float temp;
//   uint16_t temp2;
//   uint16_t i;
   parameter_init();
   hardware_version= STMFLASH_ReadHalfWord(FLASH_HARDWARE_VERSION_MAP);
   hardware_pici= STMFLASH_ReadHalfWord(FLASH_HARDWARE_VERSION_MAP+2);
@@ -183,7 +187,42 @@
//   printf("DEVICE PAIRID: %d .\r\n",g_com_map[PAIR_ID]);
//   printf("DEVICE ALARM DISTANCE: 1.%d 2.%d 3.%d .\r\n",g_com_map[ALARM_DISTANCE1],g_com_map[ALARM_DISTANCE2],g_com_map[ALARM_DISTANCE3]);
   if(g_com_map[CNT_UPDATE]==1)
   {
   uint32_t result = 0;
      uint16_t tmp = 0xAAAA;
   __disable_irq();
   result = FLASH_Prepare(0x8004A38, 128);
   if(result)
      result = FLASH_Write(0x8004A38, (const uint8_t*)&tmp, 2);
   __enable_irq();
      printf("进入升级模式\r\n");
   g_com_map[CNT_UPDATE]=0;
   save_com_map_to_flash();
   delay_ms(100);
      //   STMFLASH_Write_NoCheck(0x8004A38,0xAAAA);
      //   Delay_ms(100);
         SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader
   }
         if(g_com_map[CNT_REBOOT]==1)
      {
         g_com_map[CNT_REBOOT]=0;
         g_com_map[MAP_SIGN_INDEX]=0;
         save_com_map_to_flash();
         delay_ms(100);
         SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader
      }
      if(g_com_map[CNT_RESTART]==1)
      {
         g_com_map[CNT_RESTART]=0;
         save_com_map_to_flash();
         delay_ms(100);
            SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader
      }
         if(g_com_map[MAP_SIGN_INDEX]!=0x55AA||g_com_map[COM_INTERVAL]==0)
      {
            SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader
      }
}
void Uwb_Poll(void)
{
@@ -212,6 +251,7 @@
    }
    }
}
extern HIDO_UINT32 Battery_GetPercentage(void);
void Battery_Poll(void)
{
    if(nomove_flag==0)
@@ -288,12 +328,6 @@
  MX_TIM21_Init();
  MX_LPTIM1_Init();
  /* USER CODE BEGIN 2 */
  Set4LEDColor(RED,RED,RED,RED);
  HAL_Delay(500);
  Set4LEDColor(GREEN,GREEN,GREEN,GREEN);
  HAL_Delay(500);
  Set4LEDColor(LEDOFF,LEDOFF,LEDOFF,LEDOFF);
  HAL_Delay(500);
  Program_Init();
  Dw1000_Init();
  Dw1000_App_Init();
@@ -304,6 +338,12 @@
  Set4LEDColor_Off();  //关一下led总电源
  Power_GPS_LoraOff();//关一下GPS总电源
//  Lora_Sleep();
  Set4LEDColor(RED,RED,RED,RED);
  HAL_Delay(500);
  Set4LEDColor(GREEN,GREEN,GREEN,GREEN);
  HAL_Delay(500);
  Set4LEDColor(LEDOFF,LEDOFF,LEDOFF,LEDOFF);
  HAL_Delay(500);
  /* USER CODE END 2 */
  /* Infinite loop */