OpenEdv-开源电子网

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

关于PWR_CSR寄存器EWUP位的问题

[复制链接]

2

主题

5

帖子

0

精华

新手入门

积分
4
金钱
4
注册时间
2017-8-5
在线时间
1 小时
发表于 2017-8-29 11:03:19 | 显示全部楼层 |阅读模式
2金钱
以下内容修改自战舰源码库函数版的待机唤醒实验
中文参考手册中说PWR_CSR寄存器的EWUP位在复位的时候会清除这一位,我想利用这一位来判断是WKUP键唤醒的还是RTC闹钟唤醒的,如果是闹钟唤醒的蜂鸣器就会响,于是我定义了一个变量
                                                                              u8 alarmst = 0;
并在WKUP_Init()(战舰源码)     前判断这一位是否为零,如果不为零,则置alarmst为1:
                                                                                  if(PWR->CR&(1<<8))     //EWUP是位8
                                                                                {
                                                                                    alarmst = 1;
                                                                                }
然后在WKUP_Init()内修改一行代码:
                                                                       if((Check_WKUP()==0)&&(!alarmst)) Sys_Standby();
因为判断语句在WKUP_Init()之前,所以在我看来alarmst依然是0,所以如果不按下WKUP键 依然会进入待机模式。
在while(1)循环中我加入了:

                                                                                             if(alarmst)
                                                                                      {
                                                                                            BEEP = !BEEP;
                                                                                     }
结果运行之后不仅没有待机而且蜂鸣器一直响,明显alarmst被置1了,我以为EWUP的默认值就是1,于是我按了RESET按键,结果依然是这样。
中文参考手册中确实注了在系统复位时清除这一位,为什么 if(PWR->CR&(1<<8))这个判断一直成立?
附上我修改的代码
谢谢指教

闹铃实验.zip

4.62 MB, 下载次数: 63

最佳答案

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

解决了,疏忽了CSR写成CR了,我好RZ
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

5

帖子

0

精华

新手入门

积分
4
金钱
4
注册时间
2017-8-5
在线时间
1 小时
 楼主| 发表于 2017-8-29 11:03:20 | 显示全部楼层
解决了,疏忽了CSR写成CR了,我好RZ
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-15 04:32

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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