From b97fe0e1006e09399214e49b8acc0ce10f4ffd0d Mon Sep 17 00:00:00 2001 From: WXK <287788329@qq.com> Date: 星期五, 13 九月 2024 09:44:19 +0800 Subject: [PATCH] 1.28,修复标签心跳包发送网关收不到的bug。兼容焊没焊uwb的两种板子 --- Src/application/dw_app.c | 45 +++++++++++++++++++++++++++++++++++++++------ 1 files changed, 39 insertions(+), 6 deletions(-) diff --git a/Src/application/dw_app.c b/Src/application/dw_app.c index 586704c..ca2246a 100644 --- a/Src/application/dw_app.c +++ b/Src/application/dw_app.c @@ -132,6 +132,7 @@ u16 tag_time_recv[TAG_NUM_IN_SYS]; u8 usart_send[300]={0x55,0xAA}; u8 battary,button; +extern uint8_t uwb_errorflag; extern uint8_t g_pairstart; void tag_sleep_configuraion(void) { @@ -141,7 +142,8 @@ u32 id; void UWB_Wkup(void) { - + if(!uwb_errorflag) + { SPIx_CS_GPIO->BRR = SPIx_CS; delay_us(600); SPIx_CS_GPIO->BSRR = SPIx_CS; @@ -157,18 +159,49 @@ } } } +} extern u8 uwb_rx_remaintime_ms,gps_chafenlingqi; +uint8_t uwb_state; void UWB_RXStart(u8 tims_ms) { - if(!HAL_GPIO_ReadPin( RADIO_NSS_GPIO_Port, RADIO_NSS_Pin)) - { - gps_chafenlingqi++; - return; - } + if(!uwb_errorflag) + { +// if(!HAL_GPIO_ReadPin( RADIO_NSS_GPIO_Port, RADIO_NSS_Pin)) +// { +// gps_chafenlingqi++; +// return; +// } UWB_Wkup(); dwt_forcetrxoff(); + dwt_setinterrupt( DWT_INT_RFCG | (DWT_INT_ARFE | DWT_INT_RFSL | DWT_INT_SFDT | DWT_INT_RPHE | DWT_INT_RFCE | DWT_INT_RFTO | DWT_INT_RXPTO), 0); uwb_rx_remaintime_ms = tims_ms; + dwt_setinterrupt( DWT_INT_RFCG | (DWT_INT_ARFE | DWT_INT_RFSL | DWT_INT_SFDT | DWT_INT_RPHE | DWT_INT_RFCE | DWT_INT_RFTO | DWT_INT_RXPTO), 1); dwt_setrxtimeout(tims_ms*1000);//设定接收超时时间,0位没有超时时间 dwt_rxenable(0); + uwb_state=1; + } +} +void UWB_RXON() +{ + if(!uwb_errorflag) + { + UWB_Wkup(); + dwt_forcetrxoff(); + dwt_setinterrupt( DWT_INT_RFCG | (DWT_INT_ARFE | DWT_INT_RFSL | DWT_INT_SFDT | DWT_INT_RPHE | DWT_INT_RFCE | DWT_INT_RFTO | DWT_INT_RXPTO), 0); + + + dwt_setinterrupt( DWT_INT_RFCG | (DWT_INT_ARFE | DWT_INT_RFSL | DWT_INT_SFDT | DWT_INT_RPHE | DWT_INT_RFCE | DWT_INT_RFTO | DWT_INT_RXPTO), 1); + dwt_setrxtimeout(0);//设定接收超时时间,0位没有超时时间 + dwt_rxenable(0); + } +} +void UWB_RXOFF() +{ + if(!uwb_errorflag) + { + dwt_setinterrupt( DWT_INT_RFCG | (DWT_INT_ARFE | DWT_INT_RFSL | DWT_INT_SFDT | DWT_INT_RPHE | DWT_INT_RFCE | DWT_INT_RFTO | DWT_INT_RXPTO), 0); + dwt_forcetrxoff(); + dwt_entersleep(); + } } \ No newline at end of file -- Gitblit v1.9.3