WXK
2024-03-26 abd6a3fdf20a1d3e6629505386efe36006ef907d
Src/main.c
@@ -245,6 +245,10 @@
      {
            SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader   
      }
        if(memcmp(g_com_map2,g_com_map,200)!=0)
         {
            SCB->AIRCR = 0X05FA0000|(unsigned int)0x04;
         }
   }
@@ -302,7 +306,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)|7;
   g_com_map[VERSION] = (1<<8)|9;
//    g_com_map[DEV_ID]=1158;
//    #ifdef DEBUG_MODE
//   // g_com_map[GROUP_ID]=21;
@@ -468,17 +472,14 @@
    HAL_UART_Transmit_DMA(&hlpuart1,Close_RMC,100);
    Delay_Ms(150);
}
#define GPS_SIZE 400
extern uint16_t Lora_rece_error;
extern uint16_t Beepchixutime;
#define BleRxBufferSize 1
uint8_t aRxBuffer[1],group_id,GPSRxBuffer[BleRxBufferSize];
uint8_t ble_rx_success_flag;
uint8_t group_id;
uint8_t fangzhijinrushuimian_flag;
uint8_t GPSchangdu;
uint8_t GPS_GGAdate[400];
uint8_t GPS_GGAdatenum;
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
uint8_t GPS_GGAdate[GPS_SIZE];
//void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
//{
//    {
//        GPS_RecvFsm(GPSRxBuffer[0]);
//        GPS_Recv_Poll(GPSRxBuffer[0]);
@@ -493,11 +494,11 @@
//    }
//    HAL_UART_Receive_IT(&hlpuart1, (uint8_t *)GPSRxBuffer, 1);
//    }
}
uint8_t ble_rxdate111[3]={0x11,0x22,0x33};
void HAL_UARTEx_WakeupCallback(UART_HandleTypeDef *huart)
{
        SystemClock_Config();
//}
//uint8_t ble_rxdate111[3]={0x11,0x22,0x33};
//void HAL_UARTEx_WakeupCallback(UART_HandleTypeDef *huart)
//{
//        SystemClock_Config();
// HAL_UART_Transmit(&hlpuart1,(uint8_t*)ble_rxdate111,3,1000);
////  huart->RxState = HAL_UART_STATE_BUSY_RX;
//        ble_rxzhongzhuandate[ble_zhongzhuannum]=BleRxBuffer[0];
@@ -509,15 +510,15 @@
//    memset(ble_rxzhongzhuandate,0,sizeof(ble_rxzhongzhuandate));
//    }
//        if(lp_time>3)
      if(HAL_UART_Receive_DMA(&hlpuart1,GPS_GGAdate, LPUART_SIZE))
    {
     Error_Handler();
    }
    fangzhijinrushuimian_flag=1;
//      if(HAL_UART_Receive_DMA(&hlpuart1,GPS_GGAdate, LPUART_SIZE))
//    {
//     Error_Handler();
//    }
//    fangzhijinrushuimian_flag=1;
//    HAL_UART_Receive_IT(&hlpuart1, (uint8_t *)GPSRxBuffer, 1);
//    HAL_UART_Transmit(&hlpuart1,ble_rxdate,2,1000);
    
}
//}
extern uint8_t  yuyin_no_sleep_flag;
extern uint8_t yuyin_sendflag;
extern uint8_t xiafayuyin_data[200];
@@ -609,9 +610,12 @@
{
if(recv_end_flag == 1)  //接收完成标志
{
    uint16_t i;
    recv_end_time=0;
GPS_ParseGGA(GPS_GGAdate, rx_len);
memset(GPS_GGAdate,0,rx_len);
    for(i=0;i<GPS_SIZE;i++)
    {GPS_RecvFsm(GPS_GGAdate[i]);}
//GPS_ParseGGA(GPS_GGAdate, rx_len);
memset(GPS_GGAdate,0,GPS_SIZE);
rx_len = 0;//清除计数
recv_end_flag = 0;//清除接收结束标志位
fangzhijinrushuimian_flag=0;
@@ -647,22 +651,22 @@
  /* USER CODE END SysInit */
  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_DMA_Init();
  MX_ADC_Init();
//  MX_IWDG_Init();
  MX_LPTIM1_Init();
  MX_USART1_UART_Init();
  MX_SPI1_Init();
  MX_LPUART1_UART_Init();
  MX_USART5_UART_Init();
  MX_GPIO_Init();        //看门狗务必放到lp串口后面,否则GPS工作不正常。
  MX_DMA_Init();         //看门狗务必放到lp串口后面,否则GPS工作不正常。
  MX_ADC_Init();         //看门狗务必放到lp串口后面,否则GPS工作不正常。
  MX_LPTIM1_Init();      //看门狗务必放到lp串口后面,否则GPS工作不正常。
  MX_USART1_UART_Init(); //看门狗务必放到lp串口后面,否则GPS工作不正常。
  MX_SPI1_Init();        //看门狗务必放到lp串口后面,否则GPS工作不正常。
  MX_LPUART1_UART_Init();//看门狗务必放到lp串口后面,否则GPS工作不正常。
  MX_IWDG_Init();        //看门狗务必放到lp串口后面,否则GPS工作不正常。
  MX_USART5_UART_Init(); //看门狗务必放到lp串口后面,否则GPS工作不正常。
  /* USER CODE BEGIN 2 */
    HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12, GPIO_PIN_SET); //开GPS电源
    delay_ms(10);
    HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, GPIO_PIN_SET); //开uwb电源
    Program_Init();
#ifdef _USE_BAR
BarInit();
//BarInit();
#endif 
    Dw1000_Init();
    dwt_configuresleep(DWT_PRESRV_SLEEP | DWT_CONFIG, DWT_WAKE_CS | DWT_WAKE_WK| DWT_SLP_EN);
@@ -700,10 +704,12 @@
      if(gotosleep_flag==1)
      {
          Jingzhi_Poll();
          HAL_IWDG_Refresh(&hiwdg);
          HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);
      }
      else
      {
      HAL_IWDG_Refresh(&hiwdg);
      Lpuart_rx_Poll();
      OneSecondTask();
      IdleTask();