11、待機喚醒實驗

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秒
}
}
}  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章