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