zhyinch
2022-04-17 cb5ff916850a3ab91774f6125cc3e73a04e6d754
Ô´Âë/ºËÐİå/Src/main.c
@@ -55,23 +55,21 @@
   Uart1_Init();
   Spi_Init();
   ADC_Configuration();
   IWDG_Config(IWDG_Prescaler_128 ,4095);   //10s
    IWDG_Feed();
//   IWDG_Config(IWDG_Prescaler_128 ,4095);   //10s
//    IWDG_Feed();
   GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
}
u8 anchor_type;
u32 dev_id;
u8 hbsend[16];
u8 hbsend[26];
void HeartBeatInit(void)
{
   u16 checksum;
   hbsend[0]=0x55;
   hbsend[1]=0xAA;
   hbsend[2]=0x2;
   hbsend[3]=0xc;
   hbsend[3]=0x16;
   memcpy(&hbsend[4],&g_com_map[DEV_ID],2);
   checksum = Checksum_u16(&hbsend[2],12);
   memcpy(&hbsend[14],&checksum,2);
}
uint16_t vel_factor,pos_factor;
@@ -145,7 +143,7 @@
        
   OUT485_ENABLE;
      
   g_com_map[VERSION] = (1<<8)|(67);
   g_com_map[VERSION] = (1<<8)|(72);
   FLASH_Read(FLASH_HARDWARE_FLAG, (uint8_t*)&g_com_map[HARDWAREFLAG_INDEX], 16);
   dist_threshold = (g_com_map[SPEEDFILTER_THRES]*10)/(1000/g_com_map[COM_INTERVAL]);
   g_commap_antdelay = g_com_map[ANT_LENGTH];
@@ -166,18 +164,17 @@
         module_power=67;
      }
   
   if(g_com_map[DEV_ROLE])
   {
   printf("标签ID: %d .\r\n",dev_id);
   printf("通讯间隔: %d ms.\r\n",g_com_map[COM_INTERVAL]);
   printf("单次通讯基站数量: %d个.\r\n",g_com_map[MAX_REPORT_ANC_NUM]);
   }else{
   anchor_type = dev_id%g_com_map[MAX_REPORT_ANC_NUM];
   printf("基站ID: %x .\r\n",dev_id);
   printf("基站类型: %c .\r\n",anchor_type+0x41);
   printf("单次通讯基站数量: %d个.\r\n",g_com_map[MAX_REPORT_ANC_NUM]);
   }
//   if(g_com_map[DEV_ROLE])
//   {
//   printf("标签ID: %d .\r\n",dev_id);
//   printf("通讯间隔: %d ms.\r\n",g_com_map[COM_INTERVAL]);
//   printf("单次通讯基站数量: %d个.\r\n",g_com_map[MAX_REPORT_ANC_NUM]);
//   }else{
//    anchor_type = dev_id%g_com_map[MAX_REPORT_ANC_NUM];
//   printf("基站ID: %x .\r\n",dev_id);
//   printf("基站类型: %c .\r\n",anchor_type+0x41);
//   printf("单次通讯基站数量: %d个.\r\n",g_com_map[MAX_REPORT_ANC_NUM]);
//   }
   OUT485_DISABLE;
//   printf("DEVICE PAIRID: %d .\r\n",g_com_map[PAIR_ID]);
//   printf("DEVICE ALARM DISTANCE: 1.%d 2.%d 3.%d .\r\n",g_com_map[ALARM_DISTANCE1],g_com_map[ALARM_DISTANCE2],g_com_map[ALARM_DISTANCE3]);
@@ -198,9 +195,35 @@
 *
 * @return none
 */
u8 selftest[2];
void HeatBeat(void)
UART_PushFrame(hbsend,16);
    u16 checksum;
    selftest[0]=1;
    selftest[1]=0;
    memcpy(&hbsend[6],selftest,2);
   memcpy(&hbsend[14],uartrec_userdata,10);
   checksum = Checksum_u16(&hbsend[2],22);
   memcpy(&hbsend[24],&checksum,2);
    UART_PushFrame(hbsend,26);
}
void ClearUartUserData(void)
{
    u8 i;
    for(i=0;i<USERDATA_MAXLEN;i++)
    {
      uartrec_userdata[i] = 0;
    }
    usartrec_userdatalen = 0;
}
void ClearUWBUserData(void)
{
    u8 i;
    for(i=0;i<USERDATA_MAXLEN;i++)
    {
      uwbrec_userdata[i] = 0;
    }
    uwbrec_userdatalen = 0;
}
uint16_t temp;
float dw_vbat;
@@ -225,13 +248,19 @@
      
         UART_CheckReceive();
      UART_CheckSend();
   if(heartbeat_timer>1000)
   {
      heartbeat_timer=0;
      if(g_com_map[HEARTBEAT])
      HeatBeat();
   }
//   if(g_com_map[HEARTBEAT])
//    {
        if(heartbeat_timer>=200)
        {
            heartbeat_timer=0;
            HeatBeat();
        }
        if(userdata_timer>=200)
        {
            userdata_timer = 0;
            ClearUartUserData();
        }
//    }
   if(flag_newsecond)
   {
      uint32_t temp23;
@@ -325,13 +354,15 @@
   while(1)
   {
   g_start_sync_flag=0;
   if(g_start_send_flag)
   {
      g_start_send_flag = 0;
      Tag_App();
   }
      if(g_start_send_flag)
    {
        g_start_send_flag = 0;
        Tag_App();
    }
      IdleTask();      
if(g_com_map[DEV_ROLE]==0)
    if(g_com_map[DEV_ROLE]==0)
      Anchor_App();
   }