OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3902|回复: 3

单片机待机唤醒一些困惑

[复制链接]

8

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
113
金钱
113
注册时间
2015-1-27
在线时间
15 小时
发表于 2015-9-30 15:22:16 | 显示全部楼层 |阅读模式
5金钱
           最近在研究mini开发板的待机唤醒实验 ,手册上说   WKUP 引脚上的上升沿就可以将 待机中单片机唤醒,意思是说只要有  “按下——放开”  按键这一动作,就一定会有上升沿产生,不管按下开关的时间的长短,待机中的单片机就会退出待机模式。那怎么实现长按3 S  ,单片机才会退出待机模式,而小于3s不会退出待机模式呢?

最佳答案

查看完整内容[请看2#楼]

因为运行代码以后,我们会判断WK_UP是否按下超过3s,如果没有则继续休眠.
看着容易,学着不易,且学且努力!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-9-30 15:22:17 | 显示全部楼层
因为运行代码以后,我们会判断WK_UP是否按下超过3s,如果没有则继续休眠.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

8

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
113
金钱
113
注册时间
2015-1-27
在线时间
15 小时
 楼主| 发表于 2015-10-8 11:59:10 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
  回复的有点晚了,谢谢原子哥的回答,但小弟还是有点不懂..................待机后,只要(按下—放下)按键就会有上升沿中断,无论按下多少秒,就会退出待机模式 。      程序是长按3s后是进入待机模式啊,但是没有看到长按3s退出待机模式。
下面是原程序
//////////////////////////////////////////////////
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秒
}
}


 void EXTI0_IRQHandler(void)
{                      
EXTI_ClearITPendingBit(EXTI_Line0); // 清除LINE10上的中断标志位   
if(Check_WKUP())//关机?
{   
Sys_Enter_Standby();  
}
}
看着容易,学着不易,且学且努力!
回复

使用道具 举报

8

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
113
金钱
113
注册时间
2015-1-27
在线时间
15 小时
 楼主| 发表于 2015-10-8 21:27:21 | 显示全部楼层
突然懂了,以前以为单片机待机后,程序是从待机前程序运行处开始执行的,一直没想到是程序从头开始运行。  以前接触过PIC的深度休眠模式,单片机唤醒后是从待机前程序运行处开始执行的,以为STM32 也是一样。 谢谢原子哥的解答。
看着容易,学着不易,且学且努力!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-18 12:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表