yincheng.zhong
2023-11-23 97ce9d99e6c8a56d40d18376be3d0f8ce1fdf6b4
Src/main.c
@@ -30,6 +30,7 @@
#include "TrackingDiff.h"
#include "dw_app.h"
#include "Flash.h"
#define NSH1 0x0001
#define GP   0x0002
#define FLASH_HARDWARE_VERSION_MAP      (uint32_t)0x08004F00    //硬件版本号和批次信息位置
@@ -61,8 +62,6 @@
SPI_HandleTypeDef hspi1;
TIM_HandleTypeDef htim2;
UART_HandleTypeDef huart1;
DMA_HandleTypeDef hdma_usart1_rx;
DMA_HandleTypeDef hdma_usart1_tx;
@@ -79,7 +78,6 @@
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_IWDG_Init(void);
/* USER CODE BEGIN PFP */
@@ -213,30 +211,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 +222,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)|1;
    
    #ifdef DEBUG_MODE
   // g_com_map[GROUP_ID]=21;
@@ -257,7 +231,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];
@@ -298,7 +272,7 @@
    Error_Handler();
  }
//g_com_map[NOMOVESLEEP_TIME]=5;
    printf("固件版本: 免布线基站 V%d.%d. \r\n",g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff);
    printf("固件版本: 免布线基站-带气压 V%d.%d. \r\n",g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff);
   memcpy(g_com_map2,g_com_map,COM_MAP_SIZE);
//   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]);
@@ -366,6 +340,8 @@
    HAL_ADC_DeInit(&hadc);
    HAL_ADCEx_DisableVREFINT();
}
/* USER CODE END 0 */
/**
@@ -395,16 +371,15 @@
  /* USER CODE END SysInit */
  /* Initialize all configured peripherals */
    MX_GPIO_Init();
    MX_LPTIM1_Init();
  MX_GPIO_Init();
  MX_LPTIM1_Init();
    MX_DMA_Init();
    MX_USART1_UART_Init();
    MX_SPI1_Init();
    MX_ADC_Init();
  MX_USART1_UART_Init();
  MX_SPI1_Init();
  MX_ADC_Init();
    //  MX_TIM2_Init();
    MX_IWDG_Init();
    /* USER CODE BEGIN 2 */
  MX_IWDG_Init();
  /* USER CODE BEGIN 2 */
    LED_LG_ON;
    Program_Init();
    //   LIS3DH_Data_Init();   
@@ -414,11 +389,13 @@
    dwt_configuresleep(DWT_PRESRV_SLEEP | DWT_CONFIG, DWT_WAKE_CS | DWT_WAKE_WK| DWT_SLP_EN);
    dwt_entersleep();
    DW_DISABLE;
     BarInit();
     if(HAL_UART_Receive_DMA(&huart1,m_EUART_DMA_RXBuf,EUART_RX_BUF_SIZE))
    {
     Error_Handler();
    }
    HAL_Delay(2000);
//   mcu_sleep();
   //LED0_BLINK;      
//   SystemPower_Config();
@@ -562,7 +539,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 +558,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)
  {
@@ -693,69 +670,6 @@
  /* USER CODE BEGIN SPI1_Init 2 */
__HAL_SPI_ENABLE(&hspi1);
  /* USER CODE END SPI1_Init 2 */
}
/**
  * @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 */
//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);
}