| | |
| | | DMA_HandleTypeDef hdma_lpuart1_tx; |
| | | DMA_HandleTypeDef hdma_usart1_rx; |
| | | DMA_HandleTypeDef hdma_usart1_tx; |
| | | DMA_HandleTypeDef hdma_usart5_rx; |
| | | DMA_HandleTypeDef hdma_usart5_tx; |
| | | |
| | | SPI_HandleTypeDef hspi1; |
| | | |
| | |
| | | static void MX_ADC_Init(void); |
| | | static void MX_IWDG_Init(void); |
| | | static void MX_LPTIM1_Init(void); |
| | | static void MX_LPUART1_UART_Init(void); |
| | | static void MX_USART1_UART_Init(void); |
| | | static void MX_SPI1_Init(void); |
| | | static void MX_LPUART1_UART_Init(void); |
| | | static void MX_USART5_UART_Init(void); |
| | | /* USER CODE BEGIN PFP */ |
| | | |
| | |
| | | uint8_t anjian_flag; |
| | | uint8_t stationary_flag; |
| | | uint16_t stationary_num; |
| | | uint8_t recv_end_time; |
| | | u16 GetLPTime(void) |
| | | { |
| | | u16 count=HAL_LPTIM_ReadCounter(&hlptim1); |
| | |
| | | HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); |
| | | } |
| | | uint16_t hardware_version,hardware_pici,hardware_type; |
| | | uint8_t state5v = 1; |
| | | uint8_t state5v; |
| | | extern uint8_t du_flag; |
| | | extern uint8_t xie_flag; |
| | | float motor_keeptime; |
| | | void IdleTask(void) |
| | | { |
| | | if(HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin)) |
| | | { state5v=1; |
| | | LoraInit(); |
| | | HAL_UART_DMAStop(&hlpuart1); // 停止DMA传输,防止 |
| | | while(HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin)) |
| | | { |
| | | |
| | | UART_CheckReceive(); |
| | | UART_CheckSend(); |
| | | nomove_count = 0; |
| | | // bat_percent=Get_Battary(); |
| | | if(state5v==0) |
| | | { |
| | | state5v=1; |
| | | UsartInit(); |
| | | } |
| | | |
| | | if(bat_percent>95) |
| | | { |
| | | powerled=GREEN; |
| | | }else{ |
| | | powerled=RED; |
| | | } |
| | | } |
| | | HAL_NVIC_SystemReset(); |
| | | }else{ |
| | | state5v=0; |
| | | if(bat_percent>20) |
| | | { |
| | | powerled=BLUE; |
| | |
| | | powerled=RED; |
| | | } |
| | | |
| | | if(state5v==1) |
| | | { |
| | | state5v=0; |
| | | UsartDeInit(); |
| | | } |
| | | // if(state5v==1) |
| | | // { |
| | | // state5v=0; |
| | | // UsartDeInit(); |
| | | // } |
| | | } |
| | | if(g_com_map[MAP_SIGN_INDEX]!=0x55AA||g_com_map[COM_INTERVAL]==0) |
| | | { |
| | |
| | | // // g_com_map[MAX_REPORT_ANC_NUM]=1; |
| | | // // g_com_map[NOMOVESLEEP_TIME]=10; |
| | | // #endif |
| | | g_com_map[GROUP_ID]=0; |
| | | g_com_map[GROUP_ID]=1; |
| | | // g_com_map[COM_INTERVAL] = 1000; |
| | | if(g_com_map[COM_INTERVAL]<1000) |
| | | {g_com_map[COM_INTERVAL] = 1000;} |
| | |
| | | { |
| | | yuyin_sendflag=0; |
| | | // SYN_FrameInfo(0,yuyin_yinliang);//设置音量等级V10 |
| | | // delay_ms(10); |
| | | SYN_FrameInfo(0,xiafayuyin_data); //播放内容 |
| | | // HAL_UART_Receive_IT(&huart6, &Get_Uart6_data, 1); |
| | | memset(xiafayuyin_data,0,sizeof(xiafayuyin_data)); |
| | |
| | | static uint32_t powercount=0; |
| | | if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_12)) |
| | | { |
| | | delay_ms(1000); |
| | | delay_ms(500); |
| | | if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_12)) |
| | | { |
| | | while(1) |
| | | { |
| | | Set4LEDColor(RED,RED,RED,RED); |
| | | recv_end_time=0; |
| | | if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_12)==0) |
| | | { |
| | | delay_ms(100); |
| | |
| | | } |
| | | extern volatile uint8_t rx_len ; //接收一帧数据的长度 |
| | | extern volatile uint8_t recv_end_flag; //一帧数据接收完成标志 |
| | | void lpuarttest_Poll(void) |
| | | void Lpuart_rx_Poll(void) |
| | | { |
| | | if(recv_end_flag == 1) //接收完成标志 |
| | | { |
| | | //GPS_ParseGGA(GPS_GGAdate, rx_len); |
| | | recv_end_time=0; |
| | | GPS_ParseGGA(GPS_GGAdate, rx_len); |
| | | //HAL_UART_Transmit_DMA(&hlpuart1, GPS_GGAdate,rx_len); |
| | | memset(GPS_GGAdate,0,rx_len); |
| | | rx_len = 0;//清除计数 |
| | |
| | | MX_GPIO_Init(); |
| | | MX_DMA_Init(); |
| | | MX_ADC_Init(); |
| | | // MX_IWDG_Init(); |
| | | MX_IWDG_Init(); |
| | | MX_LPTIM1_Init(); |
| | | // MX_LPUART1_UART_Init(); |
| | | MX_USART1_UART_Init(); |
| | | MX_SPI1_Init(); |
| | | MX_LPUART1_UART_Init(); |
| | | MX_USART5_UART_Init(); |
| | | /* USER CODE BEGIN 2 */ |
| | | HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12, GPIO_PIN_SET); //开GPS电源 |
| | |
| | | Dw1000_Init(); |
| | | dwt_configuresleep(DWT_PRESRV_SLEEP | DWT_CONFIG, DWT_WAKE_CS | DWT_WAKE_WK| DWT_SLP_EN); |
| | | dwt_entersleep(); |
| | | if(HAL_UART_Receive_DMA(&huart1,m_EUART_DMA_RXBuf,EUART_RX_BUF_SIZE)) |
| | | { |
| | | Error_Handler(); |
| | | } |
| | | |
| | | LIS3DH_Data_Init(); |
| | | Set4LEDColor(RED,RED,RED,RED); |
| | | HAL_Delay(500); |
| | | Set4LEDColor(GREEN,GREEN,GREEN,GREEN); |
| | | HAL_Delay(500); |
| | | Set4LEDColor_Off(); |
| | | HAL_Delay(500); |
| | | LoraInit(); |
| | | |
| | | |
| | | // GPS_Close_flag=0; |
| | | // GPS_Close_Init(); |
| | | bat_percent=Get_Battary(); |
| | | GPS_Close_flag=0; |
| | | GPS_Close_Init(); |
| | | if (HAL_LPTIM_TimeOut_Start_IT(&hlptim1, LPTIMER_1S_COUNT, 0) != HAL_OK) //system time is 1010ms 1 puls=30.518us |
| | | { |
| | | Error_Handler(); |
| | | } |
| | | // HAL_UART_Receive_DMA(&hlpuart1,GPS_GGAdate,LPUART_SIZE);//重新打开DMA接收 |
| | | // __HAL_UART_ENABLE_IT(&hlpuart1, UART_IT_IDLE); //使能IDLE中断 |
| | | |
| | | HAL_UART_Receive_DMA(&hlpuart1,GPS_GGAdate,LPUART_SIZE);//重新打开DMA接收 |
| | | __HAL_UART_ENABLE_IT(&hlpuart1, UART_IT_IDLE); //使能IDLE中断 |
| | | if(HAL_UART_Receive_DMA(&huart1,m_EUART_DMA_RXBuf,EUART_RX_BUF_SIZE)) |
| | | { |
| | | Error_Handler(); |
| | | } |
| | | /* USER CODE END 2 */ |
| | | |
| | | /* Infinite loop */ |
| | |
| | | } |
| | | else |
| | | { |
| | | lpuarttest_Poll(); |
| | | Lpuart_rx_Poll(); |
| | | OneSecondTask(); |
| | | IdleTask(); |
| | | PowerDownDetect(); |
| | |
| | | uint16_t no_data_chongqi_num; |
| | | uint8_t no_yingdatime; |
| | | #define YUYINSTOP_TIME 10 |
| | | void HAL_LPTIM_CompareMatchCallback(LPTIM_HandleTypeDef *hlptim) |
| | | uint8_t bat_time; |
| | | void Bat_Percent_Poll() |
| | | { |
| | | // uint8_t pinlv; |
| | | SystemClock_Config(); |
| | | HAL_IWDG_Refresh(&hiwdg); |
| | | Set4LEDColor(powerled,loraled,gpsled,uwbled); |
| | | bat_time++; |
| | | if(bat_time>100) |
| | | { |
| | | bat_time=0; |
| | | bat_percent=Get_Battary(); |
| | | } |
| | | } |
| | | void Yuying_Poll() |
| | | { |
| | | yuyinzidongguan_time++; |
| | | if(yuyinzidongguan_time>YUYINSTOP_TIME) |
| | | { |
| | |
| | | HAL_GPIO_WritePin(GPIOC, GPIO_PIN_12, GPIO_PIN_RESET); |
| | | yuyin_no_sleep_flag=0; |
| | | } |
| | | } |
| | | void HAL_LPTIM_CompareMatchCallback(LPTIM_HandleTypeDef *hlptim) |
| | | { |
| | | // uint8_t pinlv; |
| | | SystemClock_Config(); |
| | | HAL_IWDG_Refresh(&hiwdg); |
| | | Set4LEDColor(powerled,loraled,gpsled,uwbled); |
| | | Bat_Percent_Poll(); |
| | | if(state5v==0) |
| | | { |
| | | if(yuyin_no_sleep_flag==0) |
| | | { |
| | | recv_end_time++; |
| | | if(recv_end_time>3) |
| | | {HAL_NVIC_SystemReset();} |
| | | } |
| | | Yuying_Poll(); |
| | | Lora_send_flag=1; |
| | | if(nomove_count++>g_com_map[STATIONARY_TIME]) |
| | | { |
| | |
| | | } else { |
| | | gotosleep_flag=0; |
| | | } |
| | | } |
| | | powerled=LEDOFF; |
| | | loraled=LEDOFF; |
| | | gpsled=LEDOFF; |