From 9fbe15b3abbe1d7227126d2a151fd11cb5e62066 Mon Sep 17 00:00:00 2001 From: chen <15335560115@163.com> Date: 星期四, 05 十二月 2024 18:27:08 +0800 Subject: [PATCH] 解决多设备丢包问题版本 --- keil/uwb_app.c | 30 ++++++++++-------------------- 1 files changed, 10 insertions(+), 20 deletions(-) diff --git a/keil/uwb_app.c b/keil/uwb_app.c index 568fbe7..cbfdfb7 100644 --- a/keil/uwb_app.c +++ b/keil/uwb_app.c @@ -443,9 +443,9 @@ flag_temp2=uwb_tx(send_buffer, 40,1 ,resp_tx_en_start_u32);//立即发送测试size大小 temp_count1=phy_timer_count_get(); while(mac_is_busy()); - gpio_pin_clr(SCL_PIN); + } -uint32_t range_timeout_us = 5000;//yuan5000 +uint32_t range_timeout_us = 1000000;//yuan5000 uint16_t uwb_searchcount; uint8_t flag_recsuccess; @@ -711,6 +711,7 @@ temp_count3=phy_timer_count_get(); gpio_pin_set(SCL_PIN); sts_lsp_store(); + flag_temp1=uwb_rx(0, 0, range_timeout_us);//开启接收 // while(mac_is_busy()); @@ -721,25 +722,19 @@ if(end_receive_count>=UINT32_MAX) {end_receive_count-=UINT32_MAX;} current_count=phy_timer_count_get(); - while(current_count<end_receive_count||current_count>end_receive_count+HALF_SECOND_TIME)//循环接受包体,若为124.8K则是+62400000 - { + current_count=phy_timer_count_get(); while(mac_is_busy()) { //Calibration_Time(); IdleTask(); - current_count=phy_timer_count_get(); - if(current_count>end_receive_count&¤t_count<end_receive_count+HALF_SECOND_TIME) - { - break; - } } sts_lsp_store_stop(); if(receive_flag==1)//成功接收 { - + gpio_pin_clr(SCL_PIN); //if(group_id==rx_buf[GROUP_ID_IDX]&&rx_buf[MESSAGE_TYPE_IDX] == MBX_POLL&&!memcmp(&rx_buf[TAG_ID_IDX],&g_com_map[BIND_DEV_ID],2))//判断是否是和自己是同一组通讯的且为poll包 if(group_id==rx_buf[GROUP_ID_IDX]&&rx_buf[MESSAGE_TYPE_IDX] == MBX_POLL)//判断是否是和自己是同一组通讯的且为poll包 { flag_recsuccess = 1; @@ -779,24 +774,19 @@ } recev_error_num=0; //range_timeout_us=5000;//恢复为5000进入range后 - LOG_INFO(TRACE_MODULE_APP,"标签ID:%X,距离: %d 包序%d\r\n",g_com_receive_id,distance,frame_seq_nb2); + //LOG_INFO(TRACE_MODULE_APP,"标签ID:%X,距离: %d 包序%d\r\n",g_com_receive_id,distance,frame_seq_nb2); //LOG_INFO(TRACE_MODULE_APP,"标签ID:%X,距离: %d 信号强度ANT0:%f,信号强度ANT2: %f\r\n",g_com_receive_id,distance,sts_rssi[0],sts_rssi[2]); - check_if_in_or_out_car(g_com_receive_id,distance,sts_rssi[0],sts_rssi[2]); + //LOG_INFO(TRACE_MODULE_APP,"标签ID:%X,距离: %d 信号强度ANT0:%f,信号强度ANT2: %f\r\n",g_com_receive_id,distance,sts_rssi[1],sts_rssi[2]); + check_if_in_or_out_car(g_com_receive_id,distance,sts_rssi[1],sts_rssi[2]); success_num++; //gpio_pin_clr(SCL_PIN); //break;去掉break变为一对多 } } - sts_lsp_store(); +// sts_lsp_store(); gpio_pin_clr(SCL_PIN); - - break; - //失败或者接受被高发射机打断都会再次开启接收 - //flag_temp1=uwb_rx(0, 0, range_timeout_us); - } -// delay_us(1); - sts_lsp_store_stop(); +// sts_lsp_store_stop(); // uwb_rx_force_off(1); // if(!flag_recsuccess) -- Gitblit v1.9.3