STM32教 程上有呀 ,如野火的教程,,配置好中断,只要一条语句即进入睡眠模式,然后由中断唤醒,执行指示灯闪烁程序:主程序如下:
int main(void)
{
/* 配置 led */
LED_GPIO_Config();
/* 配置exti中断 */
EXTI_Key_Config();
/* 配置串口为中断模式 */
USART1_Config();
printf("\r\n 野火ISO-MINI开发板,睡眠实验 \r\n");
while(1)
{
/* wait interrupt */
LED1( ON ); // 亮
Delay(0xFFFFF);
LED1( OFF ); // 灭
LED2( ON ); // 亮
Delay(0xFFFFF);
LED2( OFF ); // 灭
LED3( ON ); // 亮
Delay(0xFFFFF);
LED3( OFF ); // 灭
__WFI(); //进入睡眠模式,等待中断唤醒
}
}
static void Delay(__IO uint32_t nCount) //简单的延时函数
{
for(; nCount != 0; nCount--);
}
在桌面设置快捷方式。
很多时候,用户需要离开电脑,但是又不想关机,这种情况下,让电脑进入睡眠(待机)状态是一个最好的选择,既省去了关机开机的麻烦步骤,又能节约用电,保护电脑。下面是让电脑直接进入睡眠的操作:
1.右击桌面,选择“新建”,点击“快捷方式”
2.此时会弹出如下界面,在方框中输入“rundll32.exepowrprof.dll,SetSuspendStateHibernate”,然后点击“下一步”按钮
3.输入创建的快捷键名称“睡眠”,点击“完成”按钮
4.完成后桌面上就会出现一个名为“睡眠”的快捷方式,如下图。双击该快捷方式,电脑就会进入睡眠状态。
通过以上的操作方法,设置好一键睡眠快捷方式,需要的时候就能让电脑快速进入睡眠状态,节省时间,提高工作效率。
1、首先保证非休眠状态下能进GPIO中断 2、保证你进入的不是VDS模式 3、通过WFI休眠而不用是WFE
这是对的,睡眠唤醒后系统时钟会恢复到默认内部8MHZ,你需要重新初始化系统时钟。
stm32的l系列是低功耗系列的,可以进入深度休眠达到非常低的功耗。
本文标签:stm32怎么进入睡眠