zhyinch
2019-07-19 74560fa32a8f0ea0924a81e85360e79c94ddbf3d
Ô´Âë/ºËÐİå/Src/application/dw_app.c
@@ -256,8 +256,7 @@
    /* 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. */
    dwt_setrxaftertxdelay(POLL_TX_TO_RESP_RX_DLY_UUS);         //设置发送后开启接收,并设定延迟时间
    dwt_setrxtimeout(RESP_RX_TIMEOUT_UUS);                  //设置接收超时时间
            //设置接收超时时间
}
void Dw1000_App_Init(void)
{
@@ -300,14 +299,15 @@
   uint32_t final_tx_time;
   u32 start_poll;
   u8 i;
   LED0_ON;
   //LED0_ON;
   dwt_forcetrxoff();
   g_Resttimer=0;
   GPIO_ResetBits(SPIx_GPIO, SPIx_CS);
   delay_us(2500);
   GPIO_SetBits(SPIx_GPIO, SPIx_CS);
    dwt_setrxaftertxdelay(POLL_TX_TO_RESP_RX_DLY_UUS);         //设置发送后开启接收,并设定延迟时间
    dwt_setrxtimeout(RESP_RX_TIMEOUT_UUS);
   tag_succ_times = 0;
   tx_poll_msg[BATTARY_IDX] = Get_Battary();
   tx_poll_msg[BUTTON_IDX] = !READ_KEY0;
   for(i=0;i<REPOET_ANC_NUM;i++)
   {
   /* Write frame data to DW1000 and prepare transmission. See NOTE 7 below. */
@@ -375,6 +375,9 @@
         result=dwt_starttx(DWT_START_TX_DELAYED);//设定为延迟发送
         
         tag_succ_times++;
         #ifdef WORK_MODE_TAG
            LED0_BLINK;
         #endif
         
         /* Poll DW1000 until TX frame sent event set. See NOTE 8 below. */
         if(result==0)
@@ -401,18 +404,18 @@
   }
//   deca_sleep(10);
}
   dwt_entersleep();
//   dwt_entersleep();
   if(tag_succ_times<REPOET_ANC_NUM_MIN)
   {
   random_delay_tim =time32_incr&0x8f+7;
   deca_sleep(random_delay_tim);
   }
   LED0_BLINK;
   //LED0_BLINK;
   RTC_SET_ALARM(1);
   /* Execute a delay between ranging exchanges. */
   
}
extern uint8_t g_start_send_flag;
void Anchor_App(void)
{
   uint32_t frame_len;
@@ -425,7 +428,7 @@
   dwt_rxenable(0);//打开接收
   /* Poll for reception of a frame or error/timeout. See NOTE 7 below. */
   while (!((status_reg = dwt_read32bitreg(SYS_STATUS_ID)) & (SYS_STATUS_RXFCG | SYS_STATUS_ALL_RX_ERR)))//不断查询芯片状态直到接收成功或者出现错误
   while (!((status_reg = dwt_read32bitreg(SYS_STATUS_ID)) & (SYS_STATUS_RXFCG | SYS_STATUS_ALL_RX_ERR))&&!g_start_send_flag)//不断查询芯片状态直到接收成功或者出现错误
   { 
      UART_CheckReceive();
      UART_CheckSend();