| | |
| | | #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 //硬件版本号和批次信息位置 |
| | |
| | | |
| | | /* 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; |
| | |
| | | { |
| | | SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader |
| | | } |
| | | if(memcmp(g_com_map2,g_com_map,200)!=0) |
| | | { |
| | | SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; |
| | | } |
| | | |
| | | } |
| | | |
| | |
| | | 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; |
| | |
| | | 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]); |
| | |
| | | // } |
| | | // 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]; |
| | |
| | | // 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]; |
| | |
| | | { |
| | | 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; |
| | |
| | | /* 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); |
| | |
| | | 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)) |
| | | // { |
| | |
| | | } |
| | | 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); |