zhyinch
2022-04-26 95f736655c46ec4974e89c7f0ca6a542cdbf3532
Ô´Âë/ºËÐİå/Src/application/dw_app.c
@@ -391,7 +391,7 @@
                        dwt_forcetrxoff();
                        dwt_setdelayedtrxtime(final_tx_time);
                        result=dwt_starttx(DWT_START_TX_DELAYED);//设定为延迟发送
                                if(result!=DWT_SUCCESS)
                                if(result!=DWT_SUCCESS&&g_com_map[MODBUS_ID1]==1)
                                {
                                    #ifdef DBGMSG_OUTPUT
                                    dbgmsg_len = sprintf(dbgmsg,"%s status_reg:%x",__debug_info__,status_reg);
@@ -406,15 +406,17 @@
               };
               if(status_reg==0xffffffff)
               {
                  NVIC_SystemReset();
                  //NVIC_SystemReset();
               }
               if (status_reg & SYS_STATUS_RXFCG)//如果成功接收
                  {
                            rflosttimer = 0;
                     dwt_write32bitreg(SYS_STATUS_ID, SYS_STATUS_RXFCG | SYS_STATUS_TXFRS);//清楚寄存器标志位
                     frame_len = dwt_read32bitreg(RX_FINFO_ID) & RX_FINFO_RXFLEN_MASK;   //获得接收到的数据长度
                     dwt_readrxdata(rx_buffer, frame_len, 0);   //读取接收数据
                     dwt_setrxtimeout(0);//DELAY_BETWEEN_TWO_FRAME_UUS*(nearbase_num+1-recbase_num)+10);//设定接收超时时间,0位没有超时时间
                     dwt_rxenable(0);//打开接收
                             rflosttimer = 0;
                     if (rx_buffer[MESSAGE_TYPE_IDX] == NEAR_RESPONSE&&!memcmp(&rx_buffer[TAG_ID_IDX],&dev_id,2)&&rx_buffer[GROUP_ID_IDX] == group_id) //判断接收到的数据是否是response数据
                     {   u16 rec_nearbaseid,rec_nearbasepos;
                        int32_t temp_dist;
@@ -546,6 +548,7 @@
                           if(temp_dist!=0x1ffff )
                           {
                              #ifdef USART_SINGLE_OUTPUT
                              usart_send[2] = 1;//正常模式
                              usart_send[3] = 29;//数据段长度
                              usart_send[4] = frame_seq_nb;//数据段长度
@@ -575,10 +578,13 @@
                  if(flag_rxon)
                     {
                                dwt_rxenable(0);
                                if(g_com_map[MODBUS_ID1]==1)
                                {
                               #ifdef DBGMSG_OUTPUT
                                dbgmsg_len = sprintf(dbgmsg,"%s status_reg:%x",__debug_info__,status_reg);
                                SendDbgMsg(dbgmsg,dbgmsg_len);
                               #endif
                               #endif
                                }
                     }                        
                  }                     
         }
@@ -967,10 +973,13 @@
            while (!((status_reg = dwt_read32bitreg(SYS_STATUS_ID)) & (SYS_STATUS_RXFCG | SYS_STATUS_ALL_RX_ERR))&&!g_start_sync_flag)///不断查询芯片状态直到接收成功或者出现错误
         { };
      }else{
            if(g_com_map[MODBUS_ID1]==1)
            {
                #ifdef DBGMSG_OUTPUT
                dbgmsg_len = sprintf(dbgmsg,"%s status_reg:%x",__debug_info__,status_reg);
                SendDbgMsg(dbgmsg,dbgmsg_len);
                #endif
                #endif
            }
      }
   
         if (status_reg & SYS_STATUS_RXFCG)//接收成功
@@ -1056,6 +1065,7 @@
                            g_Tagdist[taglist_pos]= 0x2ffff;
                        }
            #ifdef USART_SINGLE_OUTPUT
               usart_send[2] = 1;//正常模式 
               usart_send[3] = 29;//数据段长度
               usart_send[4] = frame_seq_nb2;//数据段长度
@@ -1087,10 +1097,13 @@
         }
         }else{
               //printf("%x/n",status_reg);
                if(g_com_map[MODBUS_ID1]==1)
                {
                 #ifdef DBGMSG_OUTPUT
                dbgmsg_len = sprintf(dbgmsg,"%s status_reg:%x",__debug_info__,status_reg);
                SendDbgMsg(dbgmsg,dbgmsg_len);
                #endif
                }
            dwt_write32bitreg(SYS_STATUS_ID, SYS_STATUS_ALL_RX_ERR);
         }
}
@@ -1121,7 +1134,7 @@
   { u16 tag_recv_interval;
      float temp_tagpos;
   
        rflosttimer = 0;
      dwt_write32bitreg(SYS_STATUS_ID, SYS_STATUS_RXFCG);//清除标志位
      frame_len = dwt_read32bitreg(RX_FINFO_ID) & RX_FINFO_RXFL_MASK_1023;//获得接收数据长度
        recpoll_len = frame_len;
@@ -1250,8 +1263,10 @@
   }
}else{
        #ifdef DBGMSG_OUTPUT
        dbgmsg_len = sprintf(dbgmsg,"%s status_reg:%x",__debug_info__,status_reg);
    if((status_reg&SYS_STATUS_ALL_RX_ERR)&&g_com_map[MODBUS_ID1]==1)
    { dbgmsg_len = sprintf(dbgmsg,"%s status_reg:%x",__debug_info__,status_reg);
        SendDbgMsg(dbgmsg,dbgmsg_len);
    }
        #endif
      dwt_write32bitreg(SYS_STATUS_ID, SYS_STATUS_ALL_RX_ERR);
   }