From 0e86da85b241109f7bb2f0f847922b50506b520f Mon Sep 17 00:00:00 2001 From: WXK <287788329@qq.com> Date: 星期日, 25 二月 2024 18:21:02 +0800 Subject: [PATCH] 1 --- Src/radio/Lora.c | 45 ++++++++++++++++++++++++--------------------- 1 files changed, 24 insertions(+), 21 deletions(-) diff --git a/Src/radio/Lora.c b/Src/radio/Lora.c index ffea0f3..167c67d 100644 --- a/Src/radio/Lora.c +++ b/Src/radio/Lora.c @@ -368,19 +368,7 @@ if(rec_wenjian_daxiao>0XAC00) {}//文件过大,超出范围 else - { - __disable_irq(); - while(1) - { - FLASH_Prepare(APP2_ADRESS, APP_SIZE); - delay_ms(500); - if(testflag==0) - {break;} - } -// FLASH_Write(APP2_ADRESS, (const uint8_t*)&tmp111, 2); - __enable_irq(); - FLASH_Read(APP_1OR2_ADRESS,(uint8_t*)&app1_or_app2,2); - final_bag_num=(rec_wenjian_daxiao/220)+1;//计算一共要请求多少包 + { memcpy(&wangguan_up_id,&rxbuffer[SOURCE_ID_IDX],2);//网关ID 占用2个字节 send_lora_data[MSG_TYPE_IDX]=LORA_MSGTYPE_UPDATE_CONFIRM; memcpy(&send_lora_data[SOURCE_ID_IDX],&dev_id,2);//网关ID 占用2个字节 @@ -392,7 +380,20 @@ LoraUp_flag=1; Radio.Send(send_lora_data,8);//基站发送升级确认回复 Delay_Ms(1000); - SwitchLoraSettings(LORA_UPCHANNEL_FRQ,7,22); + SwitchLoraSettings(LORA_UPCHANNEL_FRQ,LORA_UPCHANNEL_SF,22); //切换lora升级频点 + delay_ms(200); + __disable_irq(); +// FLASH_Read(APP_1OR2_ADRESS,(uint8_t*)&app1_or_app2,2); + final_bag_num=(rec_wenjian_daxiao/220)+1;//计算一共要请求多少包 + while(1) + { + FLASH_Prepare(APP2_ADRESS, APP_SIZE); + delay_ms(500); + if(testflag==0) + {break;} + } +// FLASH_Write(APP2_ADRESS, (const uint8_t*)&tmp111, 2); + __enable_irq(); while(1) { if(huifushengjibao_flag==1) @@ -432,9 +433,9 @@ if(muqiandeshengjibao==rxbuffer[MUQIAN_BAG]&&!memcmp(&crc16,&rxbuffer[DATA_IDX+ONE_BAG_DAXIAO],2)&&!memcmp(&dev_id,&rxbuffer[DEST_ID_IDX],2)&& !memcmp(&wangguan_up_id,&rxbuffer[SOURCE_ID_IDX],2)) { memcpy(Zhongjian_data,&rxbuffer[DATA_IDX],ONE_BAG_DAXIAO); - if(app1_or_app2==1) - FLASH_Write(APP1_ADRESS+ONE_BAG_DAXIAO*rxbuffer[MUQIAN_BAG],(uint8_t*)Zhongjian_data,ONE_BAG_DAXIAO); - else +// if(app1_or_app2==1) +// FLASH_Write(APP1_ADRESS+ONE_BAG_DAXIAO*rxbuffer[MUQIAN_BAG],(uint8_t*)Zhongjian_data,ONE_BAG_DAXIAO); +// else FLASH_Write(APP2_ADRESS+ONE_BAG_DAXIAO*rxbuffer[MUQIAN_BAG],(uint8_t*)Zhongjian_data,ONE_BAG_DAXIAO); muqiandeshengjibao++; @@ -446,18 +447,20 @@ if(huifushengjibaoerror_num>=20) { huifushengjibaoerror_num=0; - muqiandeshengjibao=0; + muqiandeshengjibao=0; + Delay_Ms(500); + HAL_NVIC_SystemReset(); break; } } if(muqiandeshengjibao==final_bag_num) { uint16_t tmp11 ,result11; - tmp11=!app1_or_app2; - result11 = FLASH_Prepare(APP_1OR2_ADRESS, 2); + tmp11=0XBB; + result11 = FLASH_Prepare(APP_1OR2_ADRESS, PAGE_SIZE); if(result11) result11 = FLASH_Write(APP_1OR2_ADRESS, (const uint8_t*)&tmp11, 2); - Delay_Ms(500); + Delay_Ms(1500); HAL_NVIC_SystemReset(); } } -- Gitblit v1.9.3