| | |
| | | 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; |
| | |
| | | { |
| | | 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 |
| | | { |
| | |
| | | } |
| | | } |
| | | } |
| | | } |
| | | 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); |
| | |
| | | } |
| | | // 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 |
| | | { |