OpenEdv-开源电子网

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

关于待机唤醒实验的理解(参考论坛的讨论帖)

[复制链接]

4

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2013-7-22
在线时间
0 小时
发表于 2013-9-5 15:16:56 | 显示全部楼层 |阅读模式

关于待机唤醒实验的理解(参考论坛的讨论帖)
一、程序运行后进入待机模式
      
首先函数先走一遍,到void WKUP_Init(void)的时候各种初始化,执行到 if(Check_WKUP()==0)  Sys_Standby()语句时,调用u8 Check_WKUP(void)。DS0亮,在while循环内按键没有按下,90ms后return0并且DS0灭(也就是开机会有灯闪一下的现象),if语句成立,即进入待机状态。
二、待机模式下按键长按3S即进入工作模式
       待机状态,按键按下不足3s时Check_WKUP()的返回值都是0,满足void WKUP_Init(void)中的if(Check_WKUP()==0)语句 ,则执行Sys_Standby(),则3s内一直处于待机模式,只有达到3s后返回值才是1,if不成立,跳出待机,执行开机。这也就是为什么满足wkup上升沿而不立即执行开机的原因。关于待机不执行中断我也不怎么理解,希望有人解答
三、开机模式下按键长按3S即进入待机模式
     
这个比较简单,开机模式,按下Wkup跳到中断函数,3S后返回1,满足if(Check_WKUP()),进入待机模式。
关于程序流程,论坛里有人总结的很好

 1 、如果是正常运行,先执行中断程序,判断是否3秒,决定是否待机。  
 2 、如果是待机状态,则先复位并初始化,判断是否3秒,决定是否开机。
 错误之处请指出,谢谢!

   

 

将来的你,一定会感谢现在拼命努力的自己!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-9-5 17:28:19 | 显示全部楼层
回复【楼主位】摩托贵族:
---------------------------------
理解的不错。写的很好,谢谢分享。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2013-7-22
在线时间
0 小时
 楼主| 发表于 2013-9-6 08:33:18 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
也是依靠论坛的帮助。 原子哥 待机状态为什么就不执行中断了,我没找到明确的依据
将来的你,一定会感谢现在拼命努力的自己!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-9-6 10:43:48 | 显示全部楼层
回复【3楼】摩托贵族:
---------------------------------
待机模式MCU都没在跑了啊,只有PA0的唤醒中断,或者RTC的唤醒功能等可以唤醒MCU。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2013-7-22
在线时间
0 小时
 楼主| 发表于 2013-9-6 11:46:49 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
了解!
将来的你,一定会感谢现在拼命努力的自己!
回复 支持 反对

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
29
金钱
29
注册时间
2013-11-12
在线时间
0 小时
发表于 2013-12-24 10:16:00 | 显示全部楼层
回复【楼主位】摩托贵族:
---------------------------------
WKUP上升沿唤醒 可是3秒前仍处于待机状态 三秒时才进入唤醒状态 这时候上升沿应经过了
回复 支持 反对

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
29
金钱
29
注册时间
2013-11-12
在线时间
0 小时
发表于 2013-12-24 10:17:31 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
WKUP上升沿唤醒 可是3秒前仍处于待机状态 三秒时才进入唤醒状态 这时候上升沿应经过了
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-12-24 13:29:32 | 显示全部楼层
回复【7楼】北墙之北:
---------------------------------
不是这样的,只要有上升沿就会唤醒.
我们这里只是做了个3秒的延时而已,并不是出于待机状态.而是出于唤醒状态.
你可以理解为一种确认机制.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
29
金钱
29
注册时间
2013-11-12
在线时间
0 小时
发表于 2013-12-31 09:51:47 | 显示全部楼层
回复【8楼】正点原子:
---------------------------------
嗯 有些明白了 谢谢原子大哥指点 我再好好看看
回复 支持 反对

使用道具 举报

7

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
93
金钱
93
注册时间
2014-2-19
在线时间
0 小时
发表于 2014-2-24 21:27:12 | 显示全部楼层
回复【楼主位】摩托贵族:
---------------------------------
 2 、如果是待机状态,则先复位并初始化,判断是否3秒,决定是否开机。
待机模式下,是按按键之后先复位并初始化还是?
一代龙影-KPL
回复 支持 反对

使用道具 举报

7

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
93
金钱
93
注册时间
2014-2-19
在线时间
0 小时
发表于 2014-2-24 22:18:32 | 显示全部楼层
回复【10楼】DDL-龙:
---------------------------------
懂了。。
一代龙影-KPL
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-9 00:58

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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