2026-03-20 21:16:58 +08:00
|
|
|
|
#include "../main/SystemInclude.h"
|
|
|
|
|
|
|
2026-03-20 21:19:04 +08:00
|
|
|
|
void EXTI_PWR_Wakeup_irq_callback(void)
|
2026-03-20 21:16:58 +08:00
|
|
|
|
{
|
2026-03-20 21:19:04 +08:00
|
|
|
|
mcuModeSleeping = 0 ;//<2F><><EFBFBD><EFBFBD>mcu<63><75><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־λ<D6BE><CEBB>λ
|
|
|
|
|
|
//NVIC_DisableIRQ(EXTI4_7_IRQn);
|
|
|
|
|
|
//printf("deepsleep out");
|
2026-03-20 21:16:58 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-20 21:19:04 +08:00
|
|
|
|
static void SetupWakeupSources(PWR_WakeupWay_TypeDef wakeupWay)
|
2026-03-20 21:16:58 +08:00
|
|
|
|
{
|
2026-03-20 21:19:04 +08:00
|
|
|
|
if(wakeupWay == PWR_Wakeup_None) return ;
|
|
|
|
|
|
if(wakeupWay & PWR_Wakeup_RTC)
|
|
|
|
|
|
{
|
2026-03-20 21:16:58 +08:00
|
|
|
|
|
2026-03-20 21:19:04 +08:00
|
|
|
|
}
|
|
|
|
|
|
if(wakeupWay & PWR_Wakeup_EXTI)
|
|
|
|
|
|
{
|
|
|
|
|
|
GPIO_EXTI_Init(GPIO1,GPIO_PIN_7,EXTI_LINE_7,EXTI4_7_IRQn);//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ⲿexti<74>жϣ<D0B6><CFA3>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ȼ<EFBFBD><C8BB><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־λ
|
|
|
|
|
|
Exti_register_irq_callback(EXTI_LINE_7,EXTI_PWR_Wakeup_irq_callback);
|
|
|
|
|
|
}
|
|
|
|
|
|
if(wakeupWay & PWR_Wakeup_LPTIM1)
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
if(wakeupWay & PWR_Wakeup_LPTIM2)
|
2026-03-20 21:16:58 +08:00
|
|
|
|
{
|
2026-03-20 21:19:04 +08:00
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
if(wakeupWay & PWR_Wakeup_IWDG)
|
|
|
|
|
|
{
|
|
|
|
|
|
|
2026-03-20 21:16:58 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2026-03-20 21:19:04 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* ִ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ô˺<EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
|
|
|
|
|
|
* PWR_POWERMODE_t: 5<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
|
|
|
|
|
|
* PWR_MODE_SLEEP ˯<EFBFBD><EFBFBD>ģʽ(Cortex"-M0+<2B>ں<EFBFBD>ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Cortex"-M0+<EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>裬<EFBFBD><EFBFBD> NVIC<EFBFBD><EFBFBD>ϵͳʱ<EFBFBD><EFBFBD>(SysTick)<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|
|
|
|
|
* PWR_MODE_DEEP_SLEEP_1 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1(<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 32K LSI <EFBFBD><EFBFBD> LSE<EFBFBD>⣬<EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>ʱ<EFBFBD>Ӷ<EFBFBD><EFBFBD><EFBFBD>ֹͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> low power LDO)
|
|
|
|
|
|
* PWR_MODE_DEEP_SLEEP_2 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2(<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 32K LSI <EFBFBD><EFBFBD> LSE<EFBFBD>⣬<EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>ʱ<EFBFBD>Ӷ<EFBFBD><EFBFBD><EFBFBD>ֹͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> low power LDO)
|
|
|
|
|
|
* PWR_MODE_SNOOZE ADCС˯ģʽ(ADC ϵͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|
|
|
|
|
* PWR_MODE_SHUTDOWN <EFBFBD>ض<EFBFBD>ģʽ(HPLDO <EFBFBD><EFBFBD> LPLDO <EFBFBD><EFBFBD><EFBFBD>رգ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|
|
|
|
|
***/
|
|
|
|
|
|
void EnterLowPowerModeWFI(PWR_POWERMODE_t mode)
|
|
|
|
|
|
{
|
|
|
|
|
|
delay_ms(800);
|
|
|
|
|
|
// SetupWakeupSources(PWR_Wakeup_EXTI);// PWR_Wakeup_RTC|PWR_Wakeup_EXTI //ʹ<><CAB9><EFBFBD>ⲿ<EFBFBD>ж<EFBFBD>Դ<EFBFBD><D4B4><EFBFBD>ѣ<EFBFBD>ʹ<EFBFBD><CAB9>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD>жϿ<D0B6><CFBF>Դ<EFBFBD><D4B4><EFBFBD>
|
|
|
|
|
|
LHL_PWR_SetPowerMode(mode);
|
|
|
|
|
|
LHL_PWR_EnterSleep();
|
2026-03-20 21:16:58 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
2026-03-20 21:19:04 +08:00
|
|
|
|
volatile u32 mcuModeSleeping;
|
|
|
|
|
|
//PWR_POWERMODE_t LowPowerMode = PWR_MODE_DEEP_SLEEP_1 ;
|
|
|
|
|
|
void LowPowerModeProcess(void)
|
|
|
|
|
|
{
|
|
|
|
|
|
// if (mcuModeSleeping==0) return ;
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><CDB9><EFBFBD>
|
|
|
|
|
|
mcuModeSleeping = 0 ;
|
|
|
|
|
|
// printf("deepsleep in");
|
|
|
|
|
|
EnterLowPowerModeWFI(PWR_MODE_DEEP_SLEEP_1);
|
|
|
|
|
|
// EnterLowPowerModeWFI(PWR_MODE_DEEP_SLEEP_2);
|
|
|
|
|
|
// EnterLowPowerModeWFI(PWR_MODE_SNOOZE);
|
|
|
|
|
|
// EnterLowPowerModeWFI(PWR_MODE_SHUTDOWN);
|
2026-03-20 21:16:58 +08:00
|
|
|
|
|
2026-03-20 21:19:04 +08:00
|
|
|
|
// EnterLowPowerModeWFI(LowPowerMode);
|
2026-03-20 21:16:58 +08:00
|
|
|
|
|
2026-03-20 21:19:04 +08:00
|
|
|
|
}
|