WXK
2024-09-11 6a19a2e2e7c86b9df50e57d36e62fd4cb9079fbf
Src/application/dw_app.c
@@ -138,22 +138,58 @@
   dwt_configuresleep(0x940, 0x7);
   dwt_entersleep();
}
extern u32 id;
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)
        {
         printf("UWB芯片ID错误");
//         printf("UWB芯片ID错误");
            break;
        }
    }  
}
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;
//    }
    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()
{
    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()
{
    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();
}