From 7e5e286a011abedb6d5862c123474c5eb97d27eb Mon Sep 17 00:00:00 2001 From: WXK <287788329@qq.com> Date: 星期二, 29 八月 2023 17:13:01 +0800 Subject: [PATCH] 测试完成,先提交一下 --- Core/Src/main.c | 55 ++++++++++++++++++++++++++----------------------------- 1 files changed, 26 insertions(+), 29 deletions(-) diff --git a/Core/Src/main.c b/Core/Src/main.c index 1a70e26..fb4782f 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -177,18 +177,14 @@ { Error_Handler(); } -// printf("设备ID: %x .\r\n",dev_id); -// printf("固件版本:定位标签-串口输出-随机时间片模式 V%d.%d. \r\n",g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff); -//g_com_map[NOMOVESLEEP_TIME]=5; -// printf("标签ID: %d .\r\n",dev_id); -// printf("通讯间隔: %d ms.\r\n",g_com_map[COM_INTERVAL]); -// printf("单次通讯基站数量: %d个.\r\n",g_com_map[MAX_REPORT_ANC_NUM]); - - -// 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) { + Set4LEDColor(RED,RED,RED,RED); + HAL_Delay(500); + Set4LEDColor(GREEN,GREEN,GREEN,GREEN); + HAL_Delay(500); + Set4LEDColor(LEDOFF,LEDOFF,LEDOFF,LEDOFF); + HAL_Delay(500); uint32_t result = 0; uint16_t tmp = 0xAAAA; __disable_irq(); @@ -196,13 +192,14 @@ if(result) result = FLASH_Write(0x8004A38, (const uint8_t*)&tmp, 2); __enable_irq(); - printf("进入升级模式\r\n"); +// 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 +// // STMFLASH_Write_NoCheck(0x8004A38,0xAAAA); +// // Delay_ms(100); +// SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader + NVIC_SystemReset(); } if(g_com_map[CNT_REBOOT]==1) { @@ -226,9 +223,9 @@ } void Uwb_Poll(void) { - if(nomove_flag==0) + if(nomove_flag==0)//静止判断 { - if(lp_time-uwb_timer>=UWB_WORK_TIME_S) + if(lp_time-uwb_timer>=UWB_WORK_TIME_S) //是否到uwb工作时间了。 { uwbled=BLUE; powerled=LEDOFF; @@ -242,7 +239,7 @@ { uwb_work_num=0; } - if(uwb_work_num>5&&youxiao_ceju<3) + if(uwb_work_num>5&&youxiao_ceju<3)//判断uwb测距有效基站数量是否大于3个,并且超过5次的话GPS开始工作。 {GPS_ON_flag=1;} else {GPS_ON_flag=0;} @@ -338,12 +335,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); +// Set4LEDColor(RED,RED,RED,RED); +// HAL_Delay(500); +// Set4LEDColor(GREEN,GREEN,GREEN,GREEN); +// HAL_Delay(500); + +// NVIC_SystemReset(); /* USER CODE END 2 */ /* Infinite loop */ @@ -351,10 +348,10 @@ while (1) { - APL_Poll(); + APL_Poll();//lora接收,gps接收时间判断,单片机休眠函数,蜂鸣器判断函数。 Uwb_Poll(); - Battery_Poll(); - Time_to_restart_Poll(); + Battery_Poll();//检测电量函数,每60s测一次电量。 + Time_to_restart_Poll();//防止出现意外情况,或则不考虑翻转问提,20000000s重启一次设备。 /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ @@ -811,14 +808,14 @@ void HAL_LPTIM_CompareMatchCallback(LPTIM_HandleTypeDef *hlptim) { lp_time++; - nomove_time++; + nomove_time++;//设备没有移动的时间 if(nomove_time>g_com_map[NOMOVESLEEP_TIME]) {nomove_flag=1;} else {nomove_flag=0;} - if(lora_sendfinal_rx_bag_flag==1) + if(lora_sendfinal_rx_bag_flag==1)//如果进入lora等待接收回复的状态 { - lora_sendfinal_rx_time=lora_sendfinal_rx_time+1; + lora_sendfinal_rx_time=lora_sendfinal_rx_time+1;//lora等待接收2s,2s不休眠,如果超过两秒,标志位清零,进入修眠、 if(lora_sendfinal_rx_time>=2) { lora_sendfinal_rx_time=0; -- Gitblit v1.9.3