From aa08ceb38550e9e6f1ee2d74e1d57339fc6888a6 Mon Sep 17 00:00:00 2001
From: WXK <287788329@qq.com>
Date: 星期一, 28 八月 2023 18:09:51 +0800
Subject: [PATCH] 1

---
 Core/Src/main.c |   60 ++++++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 50 insertions(+), 10 deletions(-)

diff --git a/Core/Src/main.c b/Core/Src/main.c
index 7596b0d..1a70e26 100644
--- a/Core/Src/main.c
+++ b/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 */

--
Gitblit v1.9.3