附上我写的几个函数:
void Sys_StopMode()
{
//g_sleepFlag = 1;
SCB->SCR|=1<<2;
RCC->APB1ENR|=1<<28;
//PWR->CR |= 1<<2;
//PWR->CR &= 0xFD;
PWR->CR |= 0x01; //在停机模式下电压调压器处于低功耗模式
WFI_SET();
}
void LowPow_Init(void)
{
//set wakeup pin
GPIOA->CRL&=0XFFFFFFF0;//PA0设置成输入
GPIOA->CRL|=0X00000008;
GPIOA->ODR|=1<<0; //PA0上拉
MY_NVIC_Init(2,1,EXTI0_IRQChannel,1); //抢占2,子优先级2,组2
Ex_NVIC_Config(GPIO_A,0,FTIR);
Sys_StopMode();
}
void EXTI0_IRQHandler()
{
EXTI->PR=1<<0;
iap_load_app(FLASH_APP1_ADDR);
}
|