WXK
2024-03-25 578cdb830c456877b4d7539cab72c4f97fea016b
Src/radio/Lora.c
@@ -177,8 +177,15 @@
        SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader   
    }
    Radio.Standby();
    if(LoraUp_flag)
    {
    huifushengjibao_flag=1;
    Radio.Rx( 500 );
    }
    else
    {
    Radio.Rx( 100 );
//    LED_TB_OFF;
    }
}
extern LPTIM_HandleTypeDef hlptim1;
uint16_t current_time,start_time,end_time;
@@ -327,7 +334,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
                        {
@@ -342,7 +349,7 @@
            }
        }
    }
    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 +503,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
                {