OpenEdv-开源电子网

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

待机唤醒模式

[复制链接]

20

主题

86

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2016-11-19
在线时间
44 小时
发表于 2016-11-30 20:32:27 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 谦虚 于 2016-11-30 21:33 编辑

void Sys_Standby(void)
{  
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);        //使能PWR外设时钟
        PWR_WakeUpPinCmd(ENABLE);  //使能唤醒管脚功能
        PWR_EnterSTANDBYMode();          //进入待命(STANDBY)模式                  
}
//系统进入待机模式
void Sys_Enter_Standby(void)
{                        
        RCC_APB2PeriphResetCmd(0X01FC,DISABLE);        //复位所有IO口
        Sys_Standby();
}


原子的这个待机唤醒程序 void Sys_Enter_Standby(void)  这个函数是什么作用,是从待机模式退出么?

我看到原子的PDF里讲解的是,按WKUP键超过3秒进入待机模式,那么说怎么退出待机模式呢,不是说检测到wkup键的上升沿就退出待机模式么?为什么我这边在开发板上退出待机模式也是长按3秒?



我发现一个问题,为什么我把WKUP_Init(void)的直接进入待机模式的代码注释掉,就是 长按3秒进入待机模式,按一下就可以退出待机模式?



最佳答案

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

你先搞清楚几个问题 1、待机唤醒包括,从关机(待机)状态下执行开机,从开机状态下执行关机。 2、刚一上电,原子的例程从第一句话开始执行,会进入wkup_init()进行初始化,在这个函数中的最后一句话是休眠语句,也就是判断按键是否按下,刚开始你不会去按,所以它会先进入关机状态。 3、感觉你的逻辑有点儿混乱,关机状态下按一下PA0,程序就已经从main的第一句话开始执行了,只不过它又会进入wkup_init(),所以你如果不长 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

84

主题

766

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2778
金钱
2778
注册时间
2015-6-1
在线时间
394 小时
发表于 2016-11-30 20:32:28 | 显示全部楼层
你先搞清楚几个问题
1、待机唤醒包括,从关机(待机)状态下执行开机,从开机状态下执行关机。
2、刚一上电,原子的例程从第一句话开始执行,会进入wkup_init()进行初始化,在这个函数中的最后一句话是休眠语句,也就是判断按键是否按下,刚开始你不会去按,所以它会先进入关机状态。
3、感觉你的逻辑有点儿混乱,关机状态下按一下PA0,程序就已经从main的第一句话开始执行了,只不过它又会进入wkup_init(),所以你如果不长按,它又会再次休眠,只有满足3秒条件,才会跳进while(1)里开始正常工作。
4、在正常工作状态下按下按键,会进入key的判断,当不满足3秒时退出判断,当满足3秒时执行关机,回到了一开始的状态。
5、如果出现和理论不符的情况,比如不应该开机的开机了,不应该关机的关机了,那你可以尝试关掉一些其它的初始化,我遇到过中断的初始化影响了待机初始化。也可以尝试换一下初始化函数的位置。网上有许多人问这个,查查看,遇到的问题都能解决掉。
自在随心
回复

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
发表于 2016-12-1 10:15:43 | 显示全部楼层
1.搜过相关资料没有,有关于这个实验讲解的很详细的帖子;2.基础英文知识要有,Enter怎么会理解为退出
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-26 00:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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