请教各位,stm32f103进入待机模式,按下PA0按键不是每次都能唤醒,有时还会死机?

2019-07-21 06:26发布

如题,我用的看门狗和按键唤醒,目前均能唤醒,就是待机唤醒次数多了会死机咋回事?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
lianxin007
1楼-- · 2019-07-21 07:50
回复【5楼】正点原子:
---------------------------------
多谢原子先生,我的水平太水了以后还要多看手册啊:
手册:“在从待机模式退出时,BOOT引脚的值将被被重新锁存;因此,在待机模式下BOOT引脚应保持
为需要的启动配置。”
正点原子
2楼-- · 2019-07-21 09:55
估计是你代码的问题,下载我们的待机唤醒实验测试下
lianxin007
3楼-- · 2019-07-21 13:49
说详细点,就是PA0引脚唤醒后,系统重启把PA0口初始化为普通IO口,主程序运行一会儿,使能PA0口唤醒,再进入待机模式,如此反复,会出现死机现象,查了论坛的帖子,在中断服务程序里也把中断清零了,还是会死机?
lianxin007
4楼-- · 2019-07-21 17:17
回复【2楼】正点原子:
---------------------------------
就是copy你们的代码中的一部分:
void Sys_Standby(void)
{  
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE); //使能PWR外设时钟
PWR_WakeUpPinCmd(ENABLE);  //使能唤醒管脚功能
PWR_EnterSTANDBYMode();   //进入待命(STANDBY)模式 
// PWR_EnterSTOPMode(PWR_Regulator_LowPower, WR_STOPEntry_WFI);  
}
//系统进入待机模式
void Sys_Enter_Standby(void)
{  
RCC_APB2PeriphResetCmd(0X01FC,DISABLE); //复位所有IO口
Sys_Standby();
}
正点原子
5楼-- · 2019-07-21 21:34
 精彩回答 2  元偷偷看……
lianxin007
6楼-- · 2019-07-21 21:36
回复【2楼】正点原子:
---------------------------------
void EXTI0_IRQHandler(void)
{
//EXTI->R=1<<0; 
EXTI_ClearITPendingBit(EXTI_Line0); // 清除LINE10上的中断标志位
}
清楚标志位好像没啥作用。

一周热门 更多>