yincheng.zhong
2024-11-22 2bc159c6a126a414553f36a97e3f25d9923166b5
Src/radio/Lora.c
@@ -360,6 +360,7 @@
uint16_t testflag;
uint32_t Zhongjian_data[60];
uint16_t app1_or_app2;
extern IWDG_HandleTypeDef hiwdg;
void LoraUp_Poll()
{    uint16_t  result ;
    uint16_t crc16;
@@ -370,7 +371,7 @@
    else
    { 
    memcpy(&wangguan_up_id,&rxbuffer[SOURCE_ID_IDX],2);//网关ID 占用2个字节
    send_lora_data[MSG_TYPE_IDX]=LORA_MSGTYPE_UPDATE_CONFIRM;
    send_lora_data[MSG_TYPE_IDX]=LORA_MSGTYPE_UPDATE_CONFIRM2;
    memcpy(&send_lora_data[SOURCE_ID_IDX],&dev_id,2);//网关ID 占用2个字节
    memcpy(&send_lora_data[DEST_ID_IDX],&wangguan_up_id,2);//标签或者基站的设备ID 2个字节
//    send_lora_data[MUQIAN_BAG]=0xFF;
@@ -378,8 +379,11 @@
    memcpy(&send_lora_data[6],&crc16,2);
    huifushengjibao_flag=0;
    LoraUp_flag=1;
    Radio.Send(send_lora_data,8);//基站发送升级确认回复
    Delay_Ms(1000);
    for(uint8_t i=0;i<10;i++)
        {
            Radio.Send(send_lora_data,8);//基站发送升级确认回复
            Delay_Ms(100);
        }
    SwitchLoraSettings(LORA_UPCHANNEL_FRQ,LORA_UPCHANNEL_SF,22); //切换lora升级频点  
    delay_ms(200);   
    __disable_irq();
@@ -429,6 +433,7 @@
//                while(1);
                if(lora_up_rec_flag)
                {
                    HAL_IWDG_Refresh(&hiwdg);
                     crc16=Cal_CRC16(rxbuffer,DATA_IDX+ONE_BAG_DAXIAO);
                     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))
                     {
@@ -443,6 +448,7 @@
                }
                else
                {
                    HAL_IWDG_Refresh(&hiwdg);
                    huifushengjibaoerror_num++;
                    if(huifushengjibaoerror_num>=20)
                    {
@@ -473,7 +479,9 @@
        huifushengjibaoerror_num++;
            if(huifushengjibaoerror_num>=5)
            {
            huifushengjibaoerror_num=0;
            huifushengjibaoerror_num=0;
                    Delay_Ms(500);
                    HAL_NVIC_SystemReset();
            break;
            }                
        }