| | |
| | | { state5v=1; |
| | | LoraInit(); |
| | | HAL_UART_DMAStop(&hlpuart1); // 停止DMA传输,防止 |
| | | Radio.Sleep(); |
| | | powerled=LEDOFF; |
| | | loraled=LEDOFF; |
| | | gpsled=LEDOFF; |
| | | uwbled=LEDOFF; |
| | | HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12, GPIO_PIN_RESET); //GuanGPS and lora 电源 |
| | | HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, GPIO_PIN_RESET); //guan uwb 电源 |
| | | HAL_SPI_DeInit(&hspi1); |
| | | HAL_SPI_DeInit(&hspi2); |
| | | HAL_GPIO_WritePin( RADIO_NSS_GPIO_Port, RADIO_NSS_Pin,GPIO_PIN_RESET);//lora cs |
| | | HAL_GPIO_WritePin( GPIOA, GPIO_PIN_4,GPIO_PIN_RESET);//uwb cs |
| | | HAL_GPIO_WritePin( GPIOC, GPIO_PIN_3,GPIO_PIN_RESET);//LORA REST |
| | | Usart5DeInit(); |
| | | LpusartDeInit(); |
| | | // HAL_ADC_DeInit(&hadc); |
| | | while(HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin)) |
| | | { |
| | | UART_CheckReceive(); |
| | | UART_CheckSend(); |
| | | nomove_count = 0; |
| | | |
| | | HAL_IWDG_Refresh(&hiwdg); |
| | | if(bat_percent>95) |
| | | { |
| | | powerled=GREEN; |
| | | }else{ |
| | | powerled=RED; |
| | | } |
| | | uwbled=0; |
| | | gpsled=0; |
| | | loraled=0; |
| | | } |
| | | HAL_NVIC_SystemReset(); |
| | | }else{ |
| | |
| | | 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)|31; |
| | | g_com_map[VERSION] = (1<<8)|37; |
| | | |
| | | // g_com_map[DEV_ID]=1158; |
| | | // #ifdef DEBUG_MODE |
| | | // // g_com_map[GROUP_ID]=21; |
| | |
| | | // // 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]=0; |
| | | // g_com_map[COM_INTERVAL] = 1000; |
| | | if(g_com_map[COM_INTERVAL]<1000) |
| | | {g_com_map[COM_INTERVAL] = 1000;} |
| | |
| | | // g_com_map[IMU_ENABLE] = 0; |
| | | imu_enable=g_com_map[IMU_ENABLE]; |
| | | motor_enable=g_com_map[MOTOR_ENABLE]; |
| | | |
| | | g_com_map[LORA_SEND_INDEX] = 1; |
| | | group_id=g_com_map[GROUP_ID]; |
| | | dev_id = g_com_map[DEV_ID]; |
| | | slottime=ceil((double)g_com_map[MAX_REPORT_ANC_NUM]*SLOT_SCALE)+3; |
| | |
| | | u8 lora_irq_flag,lora_working_flag; |
| | | //u8 uwb_irq_flag; |
| | | extern uint8_t LoraUp_flag; |
| | | uint8_t anjian_num; |
| | | void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) |
| | | { |
| | | if(GPIO_Pin == RADIO_DIO1_Pin) |
| | |
| | | lora_irq_flag = 1; |
| | | } |
| | | } |
| | | if(GPIO_Pin == GPIO_PIN_1)//按键 |
| | | { |
| | | // SystemClock_Config(); |
| | | anjian_flag=1; |
| | | } |
| | | // if(GPIO_Pin == GPIO_PIN_1)//按键 |
| | | // { |
| | | // // SystemClock_Config(); |
| | | // anjian_flag=1; |
| | | // anjian_num++; |
| | | // if(anjian_num==2) |
| | | // { |
| | | // g_com_map[LORA_SEND_INDEX] = !g_com_map[LORA_SEND_INDEX]; |
| | | // save_com_map_to_flash(); |
| | | // Set4LEDColor(YELLOW,YELLOW,YELLOW,YELLOW); |
| | | // delay_ms(100); |
| | | // Set4LEDColor_Off(); |
| | | // delay_ms(100); |
| | | // SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader |
| | | // } |
| | | // } |
| | | if(GPIO_Pin == GPIO_PIN_0)//加速度 |
| | | { |
| | | // SystemClock_Config(); |
| | |
| | | OneSecondTask(); |
| | | IdleTask(); |
| | | PowerDownDetect(); |
| | | Lora_Send_Poll(); |
| | | if(g_com_map[LORA_SEND_INDEX]) |
| | | { |
| | | Lora_Send_Poll(); |
| | | } |
| | | TTSchaxun_Busy(); |
| | | LoraUp_Poll(); |
| | | // #ifndef DEBUG_MODE |
| | |
| | | /** Configure LSE Drive Capability |
| | | */ |
| | | HAL_PWR_EnableBkUpAccess(); |
| | | __HAL_RCC_LSEDRIVE_CONFIG(RCC_LSEDRIVE_LOW); |
| | | __HAL_RCC_LSEDRIVE_CONFIG(RCC_LSEDRIVE_HIGH); |
| | | |
| | | /** Initializes the RCC Oscillators according to the specified parameters |
| | | * in the RCC_OscInitTypeDef structure. |
| | |
| | | { |
| | | // SystemClock_Config(); |
| | | Set4LEDColor(uwbled,gpsled,loraled,powerled); //代码有BUG需要执行2次,否则电源灯不亮 |
| | | Set4LEDColor(uwbled,gpsled,loraled,powerled); |
| | | // Set4LEDColor(uwbled,gpsled,loraled,powerled); |
| | | //Set4LEDColor(powerled,loraled,gpsled,uwbled); |
| | | ledon_time = GetLPTime(); |
| | | Bat_Percent_Poll(); |