From a61102099d74e7a5293696af70a18104e8e78975 Mon Sep 17 00:00:00 2001 From: WXK <287788329@qq.com> Date: 星期四, 07 十一月 2024 16:06:07 +0800 Subject: [PATCH] 1.22,改为3s一个周期 第一秒发lora 第二个周期开uwb,第三秒关uwb --- Src/application/dw_app.c | 39 ++++++++++++++++++++++++++++++++++----- 1 files changed, 34 insertions(+), 5 deletions(-) diff --git a/Src/application/dw_app.c b/Src/application/dw_app.c index 25c2388..eb8bc4f 100644 --- a/Src/application/dw_app.c +++ b/Src/application/dw_app.c @@ -104,15 +104,15 @@ /* Configure DW1000. See NOTE 6 below. */ dwt_configure(&config);//配置DW1000 - 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_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); /* Apply default antenna delay value. See NOTE 1 below. */ dwt_setrxantennadelay(RX_ANT_DLY); //设置接收天线延迟 dwt_settxantennadelay(TX_ANT_DLY); //设置发射天线延迟 - dwt_setrxtimeout(1000);//设定接收超时时间,0位没有超时时间 - dwt_rxenable(0);//打开接收 +// dwt_setrxtimeout(1000);//设定接收超时时间,0位没有超时时间 +// dwt_rxenable(0);//打开接收 // uwbid=dwt_readdevid(); /* Set expected response's delay and timeout. See NOTE 4 and 5 below. * As this example only handles one incoming frame with always the same delay and timeout, those values can be set here once for all. */ @@ -140,19 +140,48 @@ u32 id; void UWB_Wkup(void) { - +u8 iderror_count = 0; SPIx_CS_GPIO->BRR = SPIx_CS; delay_us(600); SPIx_CS_GPIO->BSRR = SPIx_CS; id = dwt_readdevid() ; while (0xDECA0130!=id) { - u8 iderror_count = 0; + id = dwt_readdevid() ; if(iderror_count++>100) { + iderror_count=0; printf("UWB芯片ID错误\r\n"); break; } } } +uint8_t uwb_errorflag; +void UWB_RXON() +{ + if(!uwb_errorflag) + { +// Dw1000_Init(); + 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); +// delay_ms(1); + + 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); +// HAL_NVIC_EnableIRQ(EXTI4_15_IRQn); + } +} +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(); + delay_ms(1); + dwt_entersleep(); +// HAL_NVIC_DisableIRQ(EXTI4_15_IRQn); + } +} \ No newline at end of file -- Gitblit v1.9.3