WXK
2024-07-24 764fdbb09b66c77992e91d26e494e1b435c3d12f
Src/main.c
@@ -74,13 +74,13 @@
/* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_LPTIM1_Init(void);
static void MX_DMA_Init(void);
static void MX_USART1_UART_Init(void);
static void MX_SPI1_Init(void);
void MX_ADC_Init(void);
static void MX_DMA_Init(void);
static void MX_TIM2_Init(void);
static void MX_LPTIM1_Init(void);
static void MX_IWDG_Init(void);
static void MX_TIM2_Init(void);
/* USER CODE BEGIN PFP */
/* USER CODE END PFP */
@@ -151,7 +151,7 @@
        UART_CheckReceive();
      UART_CheckSend();
      nomove_count = 0;
       // bat_percent=Get_Battary();
       bat_percent=Get_Battary();
      if(state5v==0)
      {
         state5v=1;
@@ -213,30 +213,6 @@
   __HAL_LPTIM_COMPARE_SET(&hlptim1, lpcount);
}
void HardWareTypeDiffConfig(void)
{
    GPIO_InitTypeDef GPIO_InitStruct = {0};
    //hardware_type=2;
    if(hardware_type == 0)
        hardware_type = 1;
   switch(hardware_type)
      {
        case 1:
       HAL_GPIO_WritePin(GPIOB, MOTOR_Pin, GPIO_PIN_SET);
          GPIO_InitStruct.Pin = MOTOR_Pin;
          GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
          GPIO_InitStruct.Pull = GPIO_NOPULL;
          GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
          HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
         break;
      case 2:
         MX_TIM2_Init();
      //BarInit();
         break;
      }
}
u8 active_flag,nomovesleeptime;
void Program_Init(void)
{   float temp;
@@ -248,7 +224,7 @@
   hardware_pici = STMFLASH_ReadHalfWord(FLASH_HARDWARE_VERSION_MAP+2);
   hardware_type = STMFLASH_ReadHalfWord(FLASH_HARDWARE_VERSION_MAP+4);
   //deca_sleep(1000);
   g_com_map[VERSION] = (1<<8)|65;
   g_com_map[VERSION] = (1<<8)|72;
    
    #ifdef DEBUG_MODE
   // g_com_map[GROUP_ID]=21;
@@ -257,7 +233,7 @@
    //   g_com_map[MAX_REPORT_ANC_NUM]=1;
    //   g_com_map[NOMOVESLEEP_TIME]=10;
    #endif
    g_com_map[GROUP_ID]=2;
//    g_com_map[GROUP_ID]=3;
    g_com_map[COM_INTERVAL] = 1000;
    active_flag = g_com_map[ACTIVE_INDEX];
    module_power = g_com_map[POWER];
@@ -366,6 +342,35 @@
    HAL_ADC_DeInit(&hadc);
    HAL_ADCEx_DisableVREFINT();
}
uint8_t fengming_time;
extern int32_t nearbase_distlist[MAX_NEARBASE_NUM];
uint8_t PWM_Start;
void Fengming_Poll(void)
{
    if(fengming_time>0&&fengming_time<10)
    {
    //    uwb_active_flag = 0;
        HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_3);
//        PWM_Start=1;
    //    HAL_Delay(3000);
    //    HAL_TIM_PWM_Stop(&htim2, TIM_CHANNEL_3);
    }
    else
    {
        HAL_TIM_PWM_Stop(&htim2, TIM_CHANNEL_3);
//        PWM_Start=0;
    }
    for(int i=0;i<MAX_NEARBASE_NUM;i++)
    {
        if((nearbase_distlist[i]<g_com_map[ALARM_DISTANCE1]||nearbase_distlist[i]>60000)&&nearbase_distlist[i]!=0x1ffff&&nearbase_distlist[i]!=0)
        {
        fengming_time=3;
        }
    }
}
/* USER CODE END 0 */
/**
@@ -395,16 +400,15 @@
  /* USER CODE END SysInit */
  /* Initialize all configured peripherals */
    MX_GPIO_Init();
    MX_LPTIM1_Init();
    MX_DMA_Init();
    MX_USART1_UART_Init();
    MX_SPI1_Init();
    MX_ADC_Init();
    //  MX_TIM2_Init();
    MX_IWDG_Init();
    /* USER CODE BEGIN 2 */
  MX_GPIO_Init();
  MX_DMA_Init();
  MX_USART1_UART_Init();
  MX_SPI1_Init();
  MX_ADC_Init();
  MX_LPTIM1_Init();
  MX_IWDG_Init();
  MX_TIM2_Init();
  /* USER CODE BEGIN 2 */
    LED_LG_ON;
    Program_Init();
    //   LIS3DH_Data_Init();   
@@ -419,6 +423,9 @@
     Error_Handler();
    }
    HAL_Delay(2000);
//        HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_3);
//    HAL_Delay(1000);
//    HAL_TIM_PWM_Stop(&htim2, TIM_CHANNEL_3);
//   mcu_sleep();
   //LED0_BLINK;      
//   SystemPower_Config();
@@ -471,7 +478,7 @@
        SCB->AIRCR = 0X05FA0000|(unsigned int)0x04;
     }
    #ifndef DEBUG_MODE   
    if(!HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin))
    if(!HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin)&&fengming_time==0)
                    HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);  
    #endif
    }
@@ -562,7 +569,7 @@
  hadc.Init.OversamplingMode = DISABLE;
  hadc.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV2;
  hadc.Init.Resolution = ADC_RESOLUTION_12B;
  hadc.Init.SamplingTime = ADC_SAMPLETIME_160CYCLES_5;
  hadc.Init.SamplingTime = ADC_SAMPLETIME_1CYCLE_5;
  hadc.Init.ScanConvMode = ADC_SCAN_DIRECTION_FORWARD;
  hadc.Init.DataAlign = ADC_DATAALIGN_RIGHT;
  hadc.Init.ContinuousConvMode = DISABLE;
@@ -581,7 +588,7 @@
  }
  /** Configure for the selected ADC regular channel to be converted.
  */
  sConfig.Channel = ADC_CHANNEL_1;
  sConfig.Channel = ADC_CHANNEL_VREFINT;
  sConfig.Rank = ADC_RANK_CHANNEL_NUMBER;
  if (HAL_ADC_ConfigChannel(&hadc, &sConfig) != HAL_OK)
  {
@@ -749,11 +756,7 @@
    Error_Handler();
  }
  /* USER CODE BEGIN TIM2_Init 2 */
//if(HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_3) != HAL_OK)
//  {
//    /* Starting Error */
//    Error_Handler();
//  }
  /* USER CODE END TIM2_Init 2 */
  HAL_TIM_MspPostInit(&htim2);
@@ -950,7 +953,9 @@
   current_slotnum++;
    freqlost_count+=1/(float)tag_frequency;
    range_lost_time +=1/(float)tag_frequency;
    if(fengming_time>0)
    {fengming_time--;}
    Fengming_Poll();
    if(freqlost_count>FREQ_LOST_TIME)
    {
        tag_frequency = NOTAG_FREQ;