| | |
| | | |
| | | /* Private user code ---------------------------------------------------------*/ |
| | | /* USER CODE BEGIN 0 */ |
| | | void Test_Poll(); |
| | | extern uint8_t shengji_flag; |
| | | uint32_t dev_id; |
| | | uint16_t heartbeat_timer,poll_timer,sync_timer; |
| | |
| | | Set4LEDColor_Off(); |
| | | } |
| | | 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)) |
| | | { |
| | | { |
| | | // 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; |
| | |
| | | }else{ |
| | | powerled=RED; |
| | | } |
| | | } |
| | | HAL_NVIC_SystemReset(); |
| | | // } |
| | | // HAL_NVIC_SystemReset(); |
| | | }else{ |
| | | state5v=0; |
| | | if(bat_percent>20) |
| | |
| | | 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)|24; |
| | | g_com_map[VERSION] = (2<<8)|1; |
| | | // g_com_map[DEV_ID]=1158; |
| | | // #ifdef DEBUG_MODE |
| | | // // g_com_map[GROUP_ID]=21; |
| | |
| | | // Error_Handler(); |
| | | // } |
| | | //g_com_map[NOMOVESLEEP_TIME]=5; |
| | | printf("固件版本: URT-LORA-GPS版本 V%d.%d. \r\n",g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff); |
| | | printf("固件版本: URT-LORA-GPS版本测试固件-双SPI V%d.%d. \r\n",g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff); |
| | | memcpy(g_com_map2,g_com_map,COM_MAP_SIZE); |
| | | // printf("DEVICE PAIRID: %d .\r\n",g_com_map[PAIR_ID]); |
| | | // printf("DEVICE ALARM DISTANCE: 1.%d 2.%d 3.%d .\r\n",g_com_map[ALARM_DISTANCE1],g_com_map[ALARM_DISTANCE2],g_com_map[ALARM_DISTANCE3]); |
| | |
| | | uint16_t irq_num; |
| | | u8 lora_irq_flag,lora_working_flag; |
| | | //u8 uwb_irq_flag; |
| | | uint8_t test_jiasudu_flag; |
| | | void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) |
| | | { |
| | | if(GPIO_Pin == RADIO_DIO1_Pin) |
| | |
| | | HAL_NVIC_SystemReset(); |
| | | } |
| | | nomove_count = 0; |
| | | test_jiasudu_flag=1; |
| | | } |
| | | if(GPIO_Pin == GPIO_PIN_9)//UWB |
| | | { |
| | |
| | | loraled=BLUE; |
| | | LoraReportPoll(); |
| | | flag_onesecond = 1; |
| | | Test_Poll(); |
| | | } |
| | | |
| | | } |
| | |
| | | fangzhijinrushuimian_flag=0; |
| | | } |
| | | HAL_UART_Receive_DMA(&hlpuart1,GPS_GGAdate,LPUART_SIZE);//重新打开DMA接收 |
| | | } |
| | | extern uint8_t test_lora_flag; |
| | | extern uint16_t test_ancdist; |
| | | extern uint16_t test_ancid; |
| | | extern int16_t intheight; |
| | | void Test_Poll() |
| | | { |
| | | if(HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin)) |
| | | { |
| | | if(test_jiasudu_flag) |
| | | {printf("加速度计触发\r\n");} |
| | | else |
| | | {printf("加速度计不行\r\n");} |
| | | |
| | | if(test_ancid>0&&test_ancdist>0) |
| | | {printf("当前测距ID:%d,距离:%d\r\n",test_ancid,test_ancdist);} |
| | | else |
| | | {printf("当前UWB不好使\r\n");} |
| | | |
| | | if(test_lora_flag) |
| | | {printf("当前LORA好使\r\n");} |
| | | else |
| | | {printf("当前LORA有问题\r\n");} |
| | | |
| | | printf("当前气压计:%d\r\n",intheight); |
| | | } |
| | | } |
| | | /* USER CODE END 0 */ |
| | | |
| | |
| | | delay_ms(100); |
| | | HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, GPIO_PIN_SET); //开uwb电源 |
| | | Program_Init(); |
| | | MX_IWDG_Init(); //看门狗务必放到开GPS电源开uwb电源后面,否则GPS工作不正常。 |
| | | // 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; |
| | |
| | | Error_Handler(); |
| | | } |
| | | HAL_TIM_Base_Start_IT(&htim6); |
| | | |
| | | |
| | | HAL_GPIO_WritePin(GPIOC, GPIO_PIN_7, GPIO_PIN_SET); |
| | | HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET); |
| | | delay_ms(500); |
| | | //memcpy(&xiafayuyin_data,&RX_Buffer[PWTAG_WRITE_VALUE_IDX],BufferSize-PWTAG_WRITE_VALUE_IDX); |
| | | sprintf((char*)xiafayuyin_data,"设备ID%d,电量%d,",g_com_map[DEV_ID],bat_percent); |
| | | SYN_FrameInfo(0,xiafayuyin_data); //播放内容 |
| | | yuyin_sendflag=1; |
| | | yuyinzidongguan_time=0; |
| | | yuyin_no_sleep_flag=1; |
| | | |
| | | /* USER CODE END 2 */ |
| | | |
| | | /* Infinite loop */ |
| | |
| | | IdleTask(); |
| | | PowerDownDetect(); |
| | | Lora_Send_Poll(); |
| | | TTSchaxun_Busy(); |
| | | // TTSchaxun_Busy(); |
| | | LoraUp_Poll(); |
| | | // #ifndef DEBUG_MODE |
| | | // if(!HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin)) |
| | |
| | | //Set4LEDColor(powerled,loraled,gpsled,uwbled); |
| | | ledon_time = GetLPTime(); |
| | | Bat_Percent_Poll(); |
| | | if(state5v==0) |
| | | { |
| | | if(yuyin_no_sleep_flag==0) |
| | | { |
| | | recv_end_time++; |
| | | if(recv_end_time>NOGPS_RESET_TIME) |
| | | {HAL_NVIC_SystemReset();} |
| | | } |
| | | |
| | | |
| | | // if(yuyin_no_sleep_flag==0) |
| | | // { |
| | | // recv_end_time++; |
| | | // if(recv_end_time>NOGPS_RESET_TIME) |
| | | // {HAL_NVIC_SystemReset();} |
| | | // } |
| | | Yuying_Poll(); |
| | | state_count++; |
| | | switch(state_count) |
| | | { |
| | | case 0: |
| | | |
| | | break; |
| | | case 1: |
| | | break; |
| | | case 2: |
| | | break; |
| | | } |
| | | // state_count++; |
| | | // switch(state_count) |
| | | // { |
| | | // case 0: |
| | | // |
| | | // break; |
| | | // case 1: |
| | | // break; |
| | | // case 2: |
| | | // break; |
| | | // } |
| | | Lora_send_flag=1; |
| | | if(nomove_count++>g_com_map[STATIONARY_TIME]) |
| | | { |
| | |
| | | } else { |
| | | gotosleep_flag=0; |
| | | } |
| | | } |
| | | |
| | | // powerled=LEDOFF; |
| | | // loraled=LEDOFF; |
| | | // gpsled=LEDOFF; |