From 36667ff9eed83df5f6460d596220908afc9b9a11 Mon Sep 17 00:00:00 2001 From: yincheng.zhong <634916154@qq.com> Date: 星期二, 07 五月 2024 19:31:50 +0800 Subject: [PATCH] 改成中断触发模式,但是还是有BUG,会死机,还会有临近基站不测距的问题。 --- Src/radio/Lora.c | 21 +++++++++++++++------ 1 files changed, 15 insertions(+), 6 deletions(-) diff --git a/Src/radio/Lora.c b/Src/radio/Lora.c index 34a122e..b3e3340 100644 --- a/Src/radio/Lora.c +++ b/Src/radio/Lora.c @@ -14,6 +14,7 @@ #include "dw_mbx_tag.h" #include "Flash.h" #include "dw_driver.h" +#include "WS2812.h" static RadioEvents_t RadioEvents; #define USE_MODEM_LORA //#define USE_MODEM_FSK @@ -184,7 +185,7 @@ } else { - Radio.Rx( 100 ); + Radio.Rx( 50 ); } } extern LPTIM_HandleTypeDef hlptim1; @@ -245,7 +246,8 @@ 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; BufferSize = size; @@ -257,9 +259,9 @@ 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); + HAL_GPIO_WritePin(RADIO_NSS_GPIO_Port, RADIO_NSS_Pin, GPIO_PIN_RESET); //片选lora有效 } if(RX_Buffer[MSG_TYPE_IDX]==LORA_MSGTYPE_WGRESPTAG) { @@ -276,13 +278,19 @@ if(!memcmp(&wg_report_id,&RX_Buffer[SOURCE_ID_IDX],2)) { wg_lost_count = 0; + loraled=GREEN; switch(RX_Buffer[PWTAG_RW_FLAG_IDX]) { case WGRSP_RWTAG_NONE: current_count = HAL_LPTIM_ReadCounter(&hlptim1); wg_report_freq = RX_Buffer[POLL_FREQ_IDX]+400; memcpy(&rec_delaytime,&RX_Buffer[NEXTPOLL_TIME_IDX],2); - rec_secdelay = RX_Buffer[PWTAG_SECDELAY_IDX]; + rec_secdelay = RX_Buffer[PWTAG_SECDELAY_IDX]; + if(BufferSize!=13||rec_secdelay>20) + { + rec_secdelay = 0; + } + if(report_ancnum<2) { datalen_offset = report_ancnum*85; @@ -354,6 +362,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); } -- Gitblit v1.9.3