OpenEdv-开源电子网

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

STM32F4 探索者 待机唤醒实验

[复制链接]

3

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
78
金钱
78
注册时间
2020-9-27
在线时间
23 小时
发表于 2020-10-5 21:30:32 | 显示全部楼层 |阅读模式
1金钱
//系统进入待机模式
void Sys_Enter_Standby(void)
{  
  while(WKUP_KD);   //等待WK_UP按键松开(在有RTC中断时,必须等WK_UP松开再进入待机)

RCC_AHB1PeriphResetCmd(0X04FF,ENABLE);//复位所有IO口

RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);//使能PWR时钟   
  
PWR_BackupAccessCmd(ENABLE);//后备区域访问使能
//这里我们就直接关闭相关RTC中断
RTC_ITConfig(RTC_IT_TS|RTC_IT_WUT|RTC_IT_ALRB|RTC_IT_ALRA,DISABLE);//关闭RTC相关中断,可能在RTC实验打开了。
RTC_ClearITPendingBit(RTC_IT_TS|RTC_IT_WUT|RTC_IT_ALRB|RTC_IT_ALRA);//清楚RTC相关中断标志位。

PWR_ClearFlag(PWR_FLAG_WU);//清除Wake-up 标志   
我把这一句注释后把程序烧进板子,在唤醒之后再次按三秒WAKEUR后,LCD熄灭 DS0还亮  经检测并没有进入待机状态      求问:注释掉这句之后没有进入待机模式,为什么LCD屏幕会熄灭???????

PWR_WakeUpPinCmd(ENABLE);//设置WKUP用于唤醒

PWR_EnterSTANDBYMode(); //进入待机模式
  
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

31

主题

2183

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
14402
金钱
14402
注册时间
2018-8-3
在线时间
1156 小时
发表于 2020-10-6 15:46:07 | 显示全部楼层
那可能是IO 复位状态下寄存器都有复位值的 可能刚好就是拉低或者拉高了LED的那个IO 导致灯点亮了  可以仿真看看寄存器的值
回复

使用道具 举报

3

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
78
金钱
78
注册时间
2020-9-27
在线时间
23 小时
 楼主| 发表于 2020-10-6 16:59:40 | 显示全部楼层
翼行园子 发表于 2020-10-6 15:46
那可能是IO 复位状态下寄存器都有复位值的 可能刚好就是拉低或者拉高了LED的那个IO 导致灯点亮了  可以仿真 ...

灯亮没有疑问  就是LCD熄灭对不上程序逻辑
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-4-30 03:03

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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