From 3803f0d90f2e7f9fc401906d217d8bfe7c0daf58 Mon Sep 17 00:00:00 2001
From: WXK <287788329@qq.com>
Date: 星期二, 23 七月 2024 17:21:32 +0800
Subject: [PATCH] 1.71,适配物资标签,加入小于报警距离一会蜂鸣的功能。

---
 Src/main.c |  112 ++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 104 insertions(+), 8 deletions(-)

diff --git a/Src/main.c b/Src/main.c
index eb5e398..97e310a 100644
--- a/Src/main.c
+++ b/Src/main.c
@@ -61,6 +61,8 @@
 
 SPI_HandleTypeDef hspi1;
 
+TIM_HandleTypeDef htim2;
+
 UART_HandleTypeDef huart1;
 DMA_HandleTypeDef hdma_usart1_rx;
 DMA_HandleTypeDef hdma_usart1_tx;
@@ -72,12 +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_LPTIM1_Init(void);
 static void MX_IWDG_Init(void);
+static void MX_TIM2_Init(void);
 /* USER CODE BEGIN PFP */
 
 /* USER CODE END PFP */
@@ -221,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)|70;
+	g_com_map[VERSION] = (1<<8)|71;
     
     #ifdef DEBUG_MODE
    // g_com_map[GROUP_ID]=21;
@@ -339,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 */
 
 /**
@@ -369,13 +401,13 @@
 
   /* Initialize all configured peripherals */
   MX_GPIO_Init();
-  MX_LPTIM1_Init();
-    MX_DMA_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();
@@ -391,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();
@@ -443,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
     }
@@ -669,6 +704,65 @@
 }
 
 /**
+  * @brief TIM2 Initialization Function
+  * @param None
+  * @retval None
+  */
+static void MX_TIM2_Init(void)
+{
+
+  /* USER CODE BEGIN TIM2_Init 0 */
+
+  /* USER CODE END TIM2_Init 0 */
+
+  TIM_ClockConfigTypeDef sClockSourceConfig = {0};
+  TIM_MasterConfigTypeDef sMasterConfig = {0};
+  TIM_OC_InitTypeDef sConfigOC = {0};
+
+  /* USER CODE BEGIN TIM2_Init 1 */
+
+  /* USER CODE END TIM2_Init 1 */
+  htim2.Instance = TIM2;
+  htim2.Init.Prescaler = 9;
+  htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
+  htim2.Init.Period = 1171;
+  htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+  htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+  if (HAL_TIM_Base_Init(&htim2) != HAL_OK)
+  {
+    Error_Handler();
+  }
+  sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
+  if (HAL_TIM_ConfigClockSource(&htim2, &sClockSourceConfig) != HAL_OK)
+  {
+    Error_Handler();
+  }
+  if (HAL_TIM_PWM_Init(&htim2) != HAL_OK)
+  {
+    Error_Handler();
+  }
+  sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+  sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+  if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK)
+  {
+    Error_Handler();
+  }
+  sConfigOC.OCMode = TIM_OCMODE_PWM1;
+  sConfigOC.Pulse = 599;
+  sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
+  sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
+  if (HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_3) != HAL_OK)
+  {
+    Error_Handler();
+  }
+  /* USER CODE BEGIN TIM2_Init 2 */
+
+  /* USER CODE END TIM2_Init 2 */
+  HAL_TIM_MspPostInit(&htim2);
+
+}
+
+/**
   * @brief USART1 Initialization Function
   * @param None
   * @retval None
@@ -859,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;

--
Gitblit v1.9.3