From ee0d5aab5ecbbd265660cba45c8a1946005b8f8c Mon Sep 17 00:00:00 2001 From: WXK <287788329@qq.com> Date: 星期三, 18 九月 2024 13:49:17 +0800 Subject: [PATCH] v1.30,把gcom表1搬到表2的时候往后挪,防止保存出错一直重启。 --- Src/radio/Lora.c | 37 +++++++++++++++++++++++++------------ 1 files changed, 25 insertions(+), 12 deletions(-) diff --git a/Src/radio/Lora.c b/Src/radio/Lora.c index 6f65055..da6839b 100644 --- a/Src/radio/Lora.c +++ b/Src/radio/Lora.c @@ -170,6 +170,7 @@ uint32_t lora_zhuangtai; uint16_t current_count; extern wg_state_enum wg_state; +extern u8 uwb_rxflag; void OnTxDone( void ) { if(flag_writepara_needreset) //配置写入完成设备需要重启 @@ -185,7 +186,16 @@ } else { - Radio.Rx( 100 ); + if(uwb_rxflag) + { + uwb_rxflag=0; + UWB_RXOFF(); + Radio.Rx( 50 ); + } + else + { + Radio.Rx( 50 ); + } } } extern LPTIM_HandleTypeDef hlptim1; @@ -246,7 +256,7 @@ uint16_t rec_value,rec_delaytime,rx_count; uint16_t rec_value,rec_delaytime,rx_count,datalen_offset; int32_t target_count; -uint8_t shengji_flag; +uint8_t shengji_flag,time=5; extern uint32_t uwbled,gpsled,loraled,powerled; void OnRxDone( uint8_t *payload, uint16_t size, int16_t rssi, int8_t snr ) { uint16_t checksum1; @@ -259,9 +269,8 @@ lora_up_rec_flag=1; if(RX_Buffer[MSG_TYPE_IDX]==LORA_MSGTYPE_RANGEPOLL) { - UWB_Wkup(); - MbxTagUwbRec(); - HAL_GPIO_WritePin(RADIO_NSS_GPIO_Port, RADIO_NSS_Pin, GPIO_PIN_RESET); //片选lora有效 + UWB_RXStart(10); + delay_ms(time); } if(RX_Buffer[MSG_TYPE_IDX]==LORA_MSGTYPE_WGRESPTAG) { @@ -322,7 +331,7 @@ } HAL_GPIO_WritePin(GPIOC, GPIO_PIN_7, GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET); - memcpy(&xiafayuyin_data,&RX_Buffer[PWTAG_WRITE_VALUE_IDX],BufferSize-PWTAG_WRITE_VALUE_IDX); + memcpy(&xiafayuyin_data,&RX_Buffer[PWTAG_WRITE_VALUE_IDX],BufferSize-PWTAG_WRITE_VALUE_IDX-2); yuyin_sendflag=1; yuyinzidongguan_time=0; yuyin_no_sleep_flag=1; @@ -362,6 +371,7 @@ } if(!no_rx_flag&&LoraUp_flag==0) { + if(RX_Buffer[MSG_TYPE_IDX]!=LORA_MSGTYPE_RANGEPOLL) SwitchLoraSettings(UWB_CHANNEL_FRQ+g_com_map[GROUP_ID],UWB_CHANNEL_SF,0); Radio.Rx(0); } @@ -430,13 +440,14 @@ Radio.Init( &RadioEvents ); SwitchLoraSettings(UWB_CHANNEL_FRQ+g_com_map[GROUP_ID],5,0); //切换lora接收频点 - if(active_flag) - { +// if(active_flag) +// { Radio.Rx( 0 ); - }else{ - Radio.Sleep(); - } +// }else{ +// Radio.Sleep(); +// } // Radio.SetRxDutyCycle(RxDutyCycle_RX_time,RxDutyCycle_SLEEP_time); + RadioGetStatus(); } uint32_t IAP_JumpTo(uint32_t ApplicationAddress) @@ -482,10 +493,11 @@ memcpy(&send_lora_data[6],&crc16,2); huifushengjibao_flag=0; LoraUp_flag=1; +// SwitchLoraSettings(LORA_UPCHANNEL_FRQ,LORA_UPCHANNEL_SF,22); //切换lora升级频点 Radio.Send(send_lora_data,8);//基站发送升级确认回复 Delay_Ms(1000); SwitchLoraSettings(LORA_UPCHANNEL_FRQ,LORA_UPCHANNEL_SF,22); //切换lora升级频点 - delay_ms(200); + delay_ms(200); __disable_irq(); // FLASH_Read(APP_1OR2_ADRESS,(uint8_t*)&app1_or_app2,2); final_bag_num=(rec_wenjian_daxiao/220)+1;//计算一共要请求多少包 @@ -500,6 +512,7 @@ __enable_irq(); while(1) { +// huifushengjibao_flag=1; if(huifushengjibao_flag==1) {lora_up_rec_flag=1; while(1) -- Gitblit v1.9.3