From fc785f07b58e88a15cabddef20ba9cfb2d0507c3 Mon Sep 17 00:00:00 2001 From: yincheng.zhong <634916154@qq.com> Date: 星期二, 26 三月 2024 14:14:10 +0800 Subject: [PATCH] 1.11 --- Src/radio/Lora.c | 36 ++++++++++++++++++++++++------------ 1 files changed, 24 insertions(+), 12 deletions(-) diff --git a/Src/radio/Lora.c b/Src/radio/Lora.c index 0126fe4..078cfaf 100644 --- a/Src/radio/Lora.c +++ b/Src/radio/Lora.c @@ -177,8 +177,15 @@ SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader } Radio.Standby(); - Radio.Rx( 100 ); -// LED_TB_OFF; + if(LoraUp_flag) + { + huifushengjibao_flag=1; + Radio.Rx( 500 ); + } + else + { + Radio.Rx( 100 ); + } } extern LPTIM_HandleTypeDef hlptim1; uint16_t current_time,start_time,end_time; @@ -232,7 +239,7 @@ // Delay_Ms(100); } extern uint8_t report_ancnum; -static uint16_t delaytime = 771; +static uint16_t delaytime = 1200; static uint16_t source_id; uint8_t rec_index; uint16_t rec_value,rec_delaytime,rx_count; @@ -275,6 +282,7 @@ current_count = HAL_LPTIM_ReadCounter(&hlptim1); wg_report_freq = RX_Buffer[POLL_FREQ_IDX]+400; memcpy(&rec_delaytime,&RX_Buffer[NEXTPOLL_TIME_IDX],2); + if(report_ancnum<2) { datalen_offset = report_ancnum*85; @@ -327,7 +335,7 @@ { case 0xaa: //升级下发 memcpy(&rec_wenjian_daxiao,&RX_Buffer[WRITEPARA_VALUE_IDX],2);//文件大小 - if(rec_wenjian_daxiao>0XAC00||rec_wenjian_daxiao==0) + if(rec_wenjian_daxiao>APP_SIZE||rec_wenjian_daxiao==0) {}//文件过大,超出范围 else { @@ -341,8 +349,8 @@ } } } - } - if(!no_rx_flag) + } + if(!no_rx_flag&&LoraUp_flag==0) { SwitchLoraSettings(UWB_CHANNEL_FRQ+g_com_map[GROUP_ID],UWB_CHANNEL_SF,0); Radio.Rx(0); @@ -496,19 +504,23 @@ } // while(1); if(lora_up_rec_flag) - { + { uint16_t result12; HAL_IWDG_Refresh(&hiwdg); crc16=Cal_CRC16(RX_Buffer,DATA_IDX+ONE_BAG_DAXIAO); + __disable_irq(); if(muqiandeshengjibao==RX_Buffer[MUQIAN_BAG]&&!memcmp(&crc16,&RX_Buffer[DATA_IDX+ONE_BAG_DAXIAO],2)&&!memcmp(&dev_id,&RX_Buffer[DEST_ID_IDX],2)&& !memcmp(&wangguan_up_id,&RX_Buffer[SOURCE_ID_IDX],2)) { memcpy(Zhongjian_data,&RX_Buffer[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 - FLASH_Write(APP2_ADRESS+ONE_BAG_DAXIAO*RX_Buffer[MUQIAN_BAG],(uint8_t*)Zhongjian_data,ONE_BAG_DAXIAO); - + result12=FLASH_Write(APP2_ADRESS+ONE_BAG_DAXIAO*RX_Buffer[MUQIAN_BAG],(uint8_t*)Zhongjian_data,ONE_BAG_DAXIAO); + while(result12==0) + { + result12=FLASH_Write(APP2_ADRESS+ONE_BAG_DAXIAO*RX_Buffer[MUQIAN_BAG],(uint8_t*)Zhongjian_data,ONE_BAG_DAXIAO); + delay_ms(10); + } + if(result12) muqiandeshengjibao++; } + __enable_irq(); } else { -- Gitblit v1.9.3