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