From f0e236adc153a6d06874704ec6ba39a22af05ff6 Mon Sep 17 00:00:00 2001 From: WXK <287788329@qq.com> Date: 星期三, 15 一月 2025 14:54:55 +0800 Subject: [PATCH] 1.25,修改看门狗喂狗时间。加入休眠后加速度计唤醒会直接重启 --- Src/application/dw_app.c | 40 ++++++++++++++++++++++++++++++++++++---- 1 files changed, 36 insertions(+), 4 deletions(-) diff --git a/Src/application/dw_app.c b/Src/application/dw_app.c index 9c7f9cb..8cbe3df 100644 --- a/Src/application/dw_app.c +++ b/Src/application/dw_app.c @@ -80,14 +80,14 @@ 5, #endif DWT_PRF_64M, /* Pulse repetition frequency. */ - DWT_PLEN_128, /* Preamble length. */ + DWT_PLEN_64, /* Preamble length. */ DWT_PAC8, /* Preamble acquisition chunk size. Used in RX only. */ 9, /* TX preamble code. Used in TX only. */ 9, /* RX preamble code. Used in RX only. */ 1, /* Use non-standard SFD (Boolean) */ DWT_BR_6M8, /* Data rate. */ DWT_PHRMODE_STD, /* PHY header mode. */ - (129 + 8 - 8) /* SFD timeout (preamble length + 1 + SFD length - PAC size). Used in RX only. */ + (65 + 8 - 8) /* SFD timeout (preamble length + 1 + SFD length - PAC size). Used in RX only. */ }; uint32_t uwbid=0; @@ -140,19 +140,51 @@ 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; +uint8_t uwbrxflag; +void UWB_RXON() +{ + if(!uwb_errorflag) + { + uwbrxflag=1; +// 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) + { + uwbrxflag=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), 0); + dwt_forcetrxoff(); + delay_ms(1); + dwt_entersleep(); +// HAL_NVIC_DisableIRQ(EXTI4_15_IRQn); + } +} \ No newline at end of file -- Gitblit v1.9.3