| | |
| | | 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] = (2<<8)|13; |
| | | g_com_map[VERSION] = (2<<8)|14; |
| | | |
| | | // g_com_map[DEV_ID]=0x7; |
| | | #ifdef DEBUG_MODE |
| | |
| | | { |
| | | //SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader |
| | | } |
| | | |
| | | uint8_t mcu_sleep_flag; |
| | | uint8_t userkey_num; |
| | | /* USER CODE END 0 */ |
| | | |
| | |
| | | /* USER CODE END SysInit */ |
| | | |
| | | /* Initialize all configured peripherals */ |
| | | MX_IWDG_Init(); |
| | | // MX_IWDG_Init(); |
| | | MX_GPIO_Init(); |
| | | MX_LPTIM1_Init(); |
| | | MX_DMA_Init(); |
| | |
| | | /* USER CODE END WHILE */ |
| | | |
| | | /* USER CODE BEGIN 3 */ |
| | | // while(1) |
| | | // { |
| | | // MODBUS_Poll(); |
| | | // } |
| | | |
| | | if(mcu_sleep_flag) |
| | | { |
| | | if(g_start_send_flag) |
| | | { |
| | | g_start_send_flag = 0; |
| | | dwt_entersleep(); |
| | | HAL_IWDG_Refresh(&hiwdg); |
| | | } |
| | | |
| | | HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI); |
| | | } |
| | | else |
| | | { |
| | | |
| | | if(m_bEUARTTxEn==0&&(motor_state==0||motor_state==3)) |
| | | { |
| | | #ifndef DEBUG_MODE |
| | |
| | | }else{ |
| | | IdleTask(); |
| | | } |
| | | // HAL_Delay(100); |
| | | // Get_Battary(); |
| | | |
| | | // LIS3DH_Data_Init(); |
| | | if(nomove_count>g_com_map[NOMOVESLEEP_TIME]&&imu_enable) |
| | | { |
| | | mcu_sleep(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /* USER CODE END 3 */ |
| | | } |
| | | |
| | |
| | | } |
| | | void mcu_sleep(void) |
| | | { |
| | | HAL_LPTIM_DeInit(&hlptim1); |
| | | GPIO_InitTypeDef GPIO_InitStruct = {0}; |
| | | GPIO_InitStruct.Pin = GPIO_PIN_All; |
| | | GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; |
| | | GPIO_InitStruct.Pull = GPIO_NOPULL; |
| | | HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); |
| | | HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); |
| | | HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); |
| | | // HAL_LPTIM_DeInit(&hlptim1); |
| | | // HAL_ADC_DeInit(&hadc); |
| | | // __HAL_RCC_GPIOA_CLK_DISABLE(); |
| | | // __HAL_RCC_GPIOB_CLK_DISABLE(); |
| | | // __HAL_RCC_GPIOC_CLK_DISABLE(); |
| | | Dw1000_Init(); |
| | | dwt_forcetrxoff(); |
| | | dwt_setinterrupt( DWT_INT_RFCG | (DWT_INT_ARFE | DWT_INT_RFSL | DWT_INT_SFDT | DWT_INT_RPHE | DWT_INT_RFCE | DWT_INT_RFTO | DWT_INT_RXPTO), 0); |
| | | |
| | | |
| | | dwt_configuresleep(DWT_PRESRV_SLEEP | DWT_CONFIG, DWT_WAKE_CS | DWT_WAKE_WK| DWT_SLP_EN); |
| | | dwt_entersleep(); |
| | | delay_ms(100); |
| | | |
| | | HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI); |
| | | HAL_PWR_DisableWakeUpPin(PWR_WAKEUP_PIN1); |
| | | /*Clear all related wakeup flags*/ |
| | | __HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU); |
| | | /*Re-enable all used wakeup sources: Pin1(PA.0)*/ |
| | | HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN1); |
| | | /*Enter the Standby mode*/ |
| | | HAL_PWR_EnterSTANDBYMode(); |
| | | // GPIO_InitTypeDef GPIO_InitStruct = {0}; |
| | | // GPIO_InitStruct.Pin = GPIO_PIN_All; |
| | | // GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; |
| | | // GPIO_InitStruct.Pull = GPIO_NOPULL; |
| | | // HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); |
| | | // HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); |
| | | // HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); |
| | | |
| | | mcu_sleep_flag=1; |
| | | // HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI); |
| | | // HAL_PWR_DisableWakeUpPin(PWR_WAKEUP_PIN1); |
| | | // /*Clear all related wakeup flags*/ |
| | | // __HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU); |
| | | // /*Re-enable all used wakeup sources: Pin1(PA.0)*/ |
| | | // HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN1); |
| | | // /*Enter the Standby mode*/ |
| | | // HAL_PWR_EnterSTANDBYMode(); |
| | | |
| | | } |
| | | extern u16 tagslotpos; |
| | | extern uint8_t tx_near_msg[80],stationary_flag,gotosleep_flag; |
| | |
| | | gotosleep_flag=0; |
| | | } |
| | | //#ifndef DEBUG_MODE |
| | | if(nomove_count>g_com_map[NOMOVESLEEP_TIME]&&imu_enable) |
| | | { |
| | | mcu_sleep(); |
| | | } |
| | | // if(nomove_count>g_com_map[NOMOVESLEEP_TIME]&&imu_enable) |
| | | // { |
| | | // mcu_sleep(); |
| | | // } |
| | | //#endif |
| | | } |
| | | /* USER CODE END 4 */ |