中级会员
 
- 积分
- 407
- 金钱
- 407
- 注册时间
- 2016-5-26
- 在线时间
- 108 小时
|
50金钱
本帖最后由 dianzixiaobai 于 2020-6-8 15:35 编辑
如图主程序一系列初使化
WKUP_Init()
{
初使化wk_up的IO口,EXTI 和 NVIC;
if(Check_WKUP()==0) Sys_Standby(); //这里可见 单片机上电 初使化的 时候直接进入 standby模式。因为按键没有按下,不为高。
}
我们在pa0的外部中断函数里 wk_up,长按 三秒关机 进入 standby模式
void EXTI0_IRQHandler(void)
{
EXTI_ClearITPendingBit(EXTI_Line0); // 清除LINE10上的中断标志位
if(Check_WKUP())//关机?
{
Sys_Enter_Standby();
}
}
问题1:为什么 原子的程序可以做到 长按三秒开机,即长按三秒,退出standby模式?
仔细看了程序中,找不到对应 的 三秒开机 的部分,wu_up按下等三秒再退出standby模式
,因为 手册 上说,wk_up为高就直接立刻马上 退出 standby模式。不太明白 原子这里是怎么实现的。
下图三秒进入 standby模式,wk_up为高 立刻进入正常模式
|
最佳答案
查看完整内容[请看2#楼]
奥妙就在WKUP_Init初始化那里 因为这个低功耗模式唤醒是要复位的。走到WKUP_Init最后会判断按键是不是三秒。 看看图就知道了
|