| | |
| | | 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; |
| | |
| | | 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); |
| | | } |
| | | } |