1、这个章节主要讲述了如何配置STM32功耗最低的待机模式,且以wk_up的上升沿作为它的唤醒方式。
2、如果是正常运行,先执行中断程序。 如果是待机状态,则先复位并初始化。
程序的主要流程是初始化到WKUP_Init()函数,在之内的死循环中等待按键按下的消息到来,只有这样,程序才可以执行下去到点亮LCD。如果没有按键按下程序就一直处于
待机的状态。(因为在WKUP_Init()初始化中有这样一句语句:if(Check_WKUP()==0) Sys_Standby(); //不是开机,进入待机模式 ,如果调用了Check_WKUP()函数,则这
个函数一直都在 判断该按键的状态。如果没有按键按下,则直接进入到到待机模式。当捕捉到按键按下时,就会对液晶进行初始化并显示基本信息。)
当进入到正常的开机状态时,则由wk_up上升沿引起中断,进入到待机模式:if(Check_WKUP())//关机 Sys_Enter_Standby();
3、读取按键状态函数,它在整个的函数执行过程中都在执行,不断的返回0或1,在今后的学习中可以使用。
//检测WKUP脚的信号
//返回值1:连续按下3s以上
// 0:错误的触发
u8 Check_WKUP(void)
{
u8 t=0; //记录按下的时间
LED0=0; //亮灯DS0
while(1)
{
if(WKUP_KD)
{
t++; //已经按下了
delay_ms(30);
if(t>=100) //按下超过3秒钟
{
LED0=0; //点亮DS0
return 1; //按下3s以上了
}
}else
{
LED0=1;
return 0; //按下不足3秒
}
}
}