OpenEdv-开源电子网

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

关于stm32待机唤醒实验里中断函数sys_standby的疑问

[复制链接]

4

主题

14

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2018-11-14
在线时间
8 小时
发表于 2018-11-28 11:48:02 | 显示全部楼层 |阅读模式
1金钱
很多人像我一样,在看待机唤醒函数的时候卡住好久,主要是觉得,开机后按3秒,根据代码来看,按下去检测到上升沿,进中断,然后check_WKUP为真,就进到了待机函数,这和要求的按3秒开机不符。
经过冥思苦想,终于想到了其中真意,现分享出来,希望可以帮助到有同样问题的人,如有谬误,望指正。
其实重点就在于,
1、如果前一个状态是待机,按下WK_UP键,是直接触发PA0引脚的唤醒功能唤醒,不继续执行中断服务函数的,然后重新开始初始化,到达WKUP_Init最后一句:
①按键不足三秒,check_WKUP==0,执行待机;②按键超过三秒,check_WKUP==1,不执行待机,继续初始化,实现开机
2、如果前一个状态是开机,按下WK_UP键,不触发唤醒功能,而是仅仅作为中断触发,进入中断服务函数,函数中进行判断:
①按键超过三秒,check_WKUP为真(check_WKUP==1),执行待机;②按键不足三秒,check_WKUP为假(check_WKUP==0),不执行待机
可见,是前一个状态+当前操作才共同决定了结果。而前一个状态不同,同样的操作会有相反的结果,实现方式就是通过初始化函数和中断函数中的相反描述去实现的。通过前一个状态不同而选择性执行函数,达到想要的效果。
重点就在于,倘若前一个状态是待机时,WK_UP引脚是作为唤醒引脚而不执行中断的!

最佳答案

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

其实很好理解:待机唤醒,相当于复位重启!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2018-11-28 11:48:03 | 显示全部楼层
其实很好理解:待机唤醒,相当于复位重启!
回复

使用道具 举报

4

主题

14

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2018-11-14
在线时间
8 小时
 楼主| 发表于 2018-11-30 11:32:07 | 显示全部楼层
正点原子 发表于 2018-11-29 02:29
其实很好理解:待机唤醒,相当于复位重启!

谢谢原子哥!
回复

使用道具 举报

10

主题

97

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
486
金钱
486
注册时间
2019-12-6
在线时间
151 小时
发表于 2020-9-28 22:01:02 | 显示全部楼层
正点原子 发表于 2018-11-28 11:48
其实很好理解:待机唤醒,相当于复位重启!

我想问下原子哥 我的开发板是h743的 下载你们的代码进去后 长按WK_UP按键三秒进入待机模式 ,然后再长按三秒就唤醒了,可是这样循环操作几次就会出现卡死的现象 led一直亮 长按也没有反应 只能复位能继续操作 但是复位了还是会出现上面的情况 很多人都和我遇到同样的问题
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2020-7-5
在线时间
7 小时
发表于 2021-3-14 10:21:08 | 显示全部楼层
请教一下,有一个问题,如果前一个状态是待机,按下WK_UP,实现唤醒,这个时候不执行中断,那为什么之后的2s多都不行执行中断服务函数呢?
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2020-7-5
在线时间
7 小时
发表于 2021-3-14 10:33:05 | 显示全部楼层
xx不是叉叉 发表于 2021-3-14 10:21
请教一下,有一个问题,如果前一个状态是待机,按下WK_UP,实现唤醒,这个时候不执行中断,那为什么之后的2 ...

我好像在您以前的贴子的评论区找到答案了,中断是边沿信号触发,长按3s只有一个上升沿,这个上升沿用于了唤醒,唤醒是排在中断前面的
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-26 09:33

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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