WXK
2024-03-26 abd6a3fdf20a1d3e6629505386efe36006ef907d
Src/main.c
@@ -39,6 +39,7 @@
#include "syn6288.h"
#include "dw_mbx_tag.h"
#include "GPS.h"
#include "lora.h"
#define NSH1 0x0001
#define GP   0x0002
#define FLASH_HARDWARE_VERSION_MAP      (uint32_t)0x08004F00    //硬件版本号和批次信息位置
@@ -107,6 +108,7 @@
/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */
extern uint8_t shengji_flag;
uint32_t dev_id;
uint16_t heartbeat_timer,poll_timer,sync_timer;
uint8_t aRxBuffer[1],group_id;
@@ -243,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;
         }
   }
@@ -300,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)|6;
   g_com_map[VERSION] = (1<<8)|9;
//    g_com_map[DEV_ID]=1158;
//    #ifdef DEBUG_MODE
//   // g_com_map[GROUP_ID]=21;
@@ -466,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]);
@@ -491,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];
@@ -507,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];
@@ -607,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;
@@ -645,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);
@@ -698,16 +704,19 @@
      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();   
      PowerDownDetect();
      Lora_Send_Poll();
      TTSchaxun_Busy();
      LoraUp_Poll();
//    #ifndef DEBUG_MODE   
//    if(!HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin))   
//  {      
@@ -1267,7 +1276,7 @@
}
void HAL_LPTIM_CompareMatchCallback(LPTIM_HandleTypeDef *hlptim)
{
 if(chongqi_flag==0)
 if(chongqi_flag==0&&shengji_flag==0)
 {
    SystemClock_Config();
Set4LEDColor(powerled,loraled,gpsled,uwbled);