WXK
2024-07-05 ba9bc95d95fbd04e34ca5d61677422d28c089bf8
Src/main.c
@@ -86,6 +86,7 @@
DMA_HandleTypeDef hdma_usart1_tx;
SPI_HandleTypeDef hspi1;
SPI_HandleTypeDef hspi2;
TIM_HandleTypeDef htim6;
@@ -105,6 +106,7 @@
static void MX_LPUART1_UART_Init(void);
static void MX_USART5_UART_Init(void);
static void MX_TIM6_Init(void);
static void MX_SPI2_Init(void);
/* USER CODE BEGIN PFP */
/* USER CODE END PFP */
@@ -314,7 +316,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)|23;
   g_com_map[VERSION] = (1<<8)|25;
//    g_com_map[DEV_ID]=1158;
//    #ifdef DEBUG_MODE
//   // g_com_map[GROUP_ID]=21;
@@ -441,13 +443,14 @@
extern u8 gps_chafenlingqi;
uint16_t irq_num;
u8 lora_irq_flag,lora_working_flag;
//u8 uwb_irq_flag;
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
    if(GPIO_Pin == RADIO_DIO1_Pin)
    {
      //  SystemClock_Config();
     //   irq_num++;
     irq_num++;
        lora_irq_flag = 1;
    //    RadioIrqProcess();
    }
@@ -467,11 +470,12 @@
    }
   if(GPIO_Pin == GPIO_PIN_9)//UWB
    {
     if(!HAL_GPIO_ReadPin( RADIO_NSS_GPIO_Port, RADIO_NSS_Pin))
    {
        gps_chafenlingqi++;
        return;
    }
//     if(!HAL_GPIO_ReadPin( RADIO_NSS_GPIO_Port, RADIO_NSS_Pin))
//    {
//        gps_chafenlingqi++;
//        return;
//    }
//        uwb_irq_flag = 1;
        MbxTagUwbRec();
    }
}
@@ -595,6 +599,7 @@
          HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12, GPIO_PIN_RESET); //GuanGPS and lora 电源
          HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, GPIO_PIN_RESET); //guan uwb 电源
          HAL_SPI_DeInit(&hspi1);
          HAL_SPI_DeInit(&hspi2);
          HAL_GPIO_WritePin( RADIO_NSS_GPIO_Port, RADIO_NSS_Pin,GPIO_PIN_RESET);//lora  cs
          HAL_GPIO_WritePin( GPIOA, GPIO_PIN_4,GPIO_PIN_RESET);//uwb cs
          HAL_GPIO_WritePin( GPIOC, GPIO_PIN_3,GPIO_PIN_RESET);//LORA REST
@@ -687,19 +692,27 @@
  MX_GPIO_Init();
  MX_DMA_Init();
  MX_ADC_Init();
 // MX_IWDG_Init();
//  MX_IWDG_Init();
  MX_LPTIM1_Init();
  MX_USART1_UART_Init();
  MX_SPI1_Init();
  MX_LPUART1_UART_Init();
  MX_USART5_UART_Init();
  MX_TIM6_Init();
  MX_SPI2_Init();
  /* USER CODE BEGIN 2 */
  GPIO_InitTypeDef GPIO_InitStruct = {0};
    HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12, GPIO_PIN_SET); //开GPS电源
    delay_ms(10);
    delay_ms(100);
    HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, GPIO_PIN_SET); //开uwb电源
    Program_Init();
    MX_IWDG_Init(); //看门狗务必放到开GPS电源开uwb电源后面,否则GPS工作不正常。
  HAL_GPIO_WritePin(GPIOC, GPIO_PIN_1, GPIO_PIN_SET);
  GPIO_InitStruct.Pin = GPIO_PIN_1;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
#ifdef _USE_BAR
//BarInit();
#endif 
@@ -709,9 +722,9 @@
    LIS3DH_Data_Init();   
    Set4LEDColor(RED,RED,RED,RED);
    HAL_Delay(500);
    delay_ms(100);
    Set4LEDColor_Off();
    HAL_Delay(500);
    delay_ms(100);
    LoraInit();
//    delay_ms(1000);
bat_percent=Get_Battary();
@@ -748,11 +761,16 @@
//      HAL_IWDG_Refresh(&hiwdg);
          if(lora_irq_flag)
          {
            lora_irq_flag = 0;
              lora_irq_flag = 0;
              lora_working_flag = 1;
              RadioIrqProcess();
              lora_working_flag = 0;
          }
//          if(uwb_irq_flag)
//          {
//              MbxTagUwbRec();
//              uwb_irq_flag=0;
//          }
      Lpuart_rx_Poll();
      OneSecondTask();
      IdleTask();   
@@ -1125,6 +1143,44 @@
}
/**
  * @brief SPI2 Initialization Function
  * @param None
  * @retval None
  */
static void MX_SPI2_Init(void)
{
  /* USER CODE BEGIN SPI2_Init 0 */
  /* USER CODE END SPI2_Init 0 */
  /* USER CODE BEGIN SPI2_Init 1 */
  /* USER CODE END SPI2_Init 1 */
  /* SPI2 parameter configuration*/
  hspi2.Instance = SPI2;
  hspi2.Init.Mode = SPI_MODE_MASTER;
  hspi2.Init.Direction = SPI_DIRECTION_2LINES;
  hspi2.Init.DataSize = SPI_DATASIZE_8BIT;
  hspi2.Init.CLKPolarity = SPI_POLARITY_LOW;
  hspi2.Init.CLKPhase = SPI_PHASE_1EDGE;
  hspi2.Init.NSS = SPI_NSS_SOFT;
  hspi2.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2;
  hspi2.Init.FirstBit = SPI_FIRSTBIT_MSB;
  hspi2.Init.TIMode = SPI_TIMODE_DISABLE;
  hspi2.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
  hspi2.Init.CRCPolynomial = 7;
  if (HAL_SPI_Init(&hspi2) != HAL_OK)
  {
    Error_Handler();
  }
  /* USER CODE BEGIN SPI2_Init 2 */
__HAL_SPI_ENABLE(&hspi2);
  /* USER CODE END SPI2_Init 2 */
}
/**
  * @brief TIM6 Initialization Function
  * @param None
  * @retval None
@@ -1201,25 +1257,23 @@
  HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13|GPIO_PIN_7|GPIO_PIN_8, GPIO_PIN_RESET);
  /*Configure GPIO pin Output Level */
  HAL_GPIO_WritePin(GPIOC, RADIO_NSS_Pin|RADIO_nRESET_Pin|GPIO_PIN_4, GPIO_PIN_SET);
  /*Configure GPIO pin Output Level */
  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4|GPIO_PIN_8, GPIO_PIN_SET);
  /*Configure GPIO pin Output Level */
  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0|GPIO_PIN_2|GPIO_PIN_4|GPIO_PIN_5
                          |GPIO_PIN_7, GPIO_PIN_RESET);
  HAL_GPIO_WritePin(GPIOC, GPIO_PIN_4, GPIO_PIN_SET);
  /*Configure GPIO pin Output Level */
  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_10|SCL_Pin|SDA_Pin|GPIO_PIN_6, GPIO_PIN_SET);
  HAL_GPIO_WritePin(GPIOB, RADIO_NSS_Pin|RADIO_nRESET_Pin|SCL_Pin|SDA_Pin
                          |GPIO_PIN_6, GPIO_PIN_SET);
  /*Configure GPIO pin Output Level */
  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_2|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_7, GPIO_PIN_RESET);
  /*Configure GPIO pin Output Level */
  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12|GPIO_PIN_15, GPIO_PIN_RESET);
  /*Configure GPIO pins : PC13 RADIO_NSS_Pin RADIO_nRESET_Pin PC4
                           PC7 PC8 */
  GPIO_InitStruct.Pin = GPIO_PIN_13|RADIO_NSS_Pin|RADIO_nRESET_Pin|GPIO_PIN_4
                          |GPIO_PIN_7|GPIO_PIN_8;
  /*Configure GPIO pins : PC13 PC4 PC7 PC8 */
  GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_4|GPIO_PIN_7|GPIO_PIN_8;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
@@ -1238,9 +1292,9 @@
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
  HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  /*Configure GPIO pins : PB0 PB2 PB10 PB4
  /*Configure GPIO pins : RADIO_NSS_Pin PB2 RADIO_nRESET_Pin PB4
                           PB5 PB6 PB7 */
  GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_2|GPIO_PIN_10|GPIO_PIN_4
  GPIO_InitStruct.Pin = RADIO_NSS_Pin|GPIO_PIN_2|RADIO_nRESET_Pin|GPIO_PIN_4
                          |GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull = GPIO_NOPULL;