OpenEdv-开源电子网

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

分享一个RTC唤醒STOP模式的教训

[复制链接]

4

主题

10

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2020-2-3
在线时间
12 小时
发表于 2020-2-22 17:44:36 | 显示全部楼层 |阅读模式
不知道的时候以为是玄学,学完发现真相只有一个。。。。目的 使用STM32F103 没有外部晶振,做一个低功耗的传感器  RTC闹钟唤醒STOP模式
1.RTC时钟初始化,记得打开闹钟中断RTC_ITConfig(RTC_IT_ALR, ENABLE);                //使能RTC闹钟中断
2.使能外部中断线17,对应中断通道是RTCAlarm_IRQn
之前以为一设置实时时钟闹钟就会死机,或者说进入不到RTCAlarm_IRQHandle(printf没有打印就以为没到这里)
实际是缺了关键的一句EXTI_ClearITPendingBit(EXTI_Line17);
void RTCAlarm_IRQHandler(void)  //RTC通过外部中断触发的中断
{
       
        if(RTC_GetITStatus(RTC_IT_ALR)!= RESET)//闹钟中断
        {
                EXTI_ClearITPendingBit(EXTI_Line17);//这个中断里面必须清掉这个标志位 否则会死机
                uart_init(115200);         //串口初始化为115200         
                printf("RTC EXIT line");
                RTC_ClearITPendingBit(RTC_IT_ALR);                //清闹钟中断                 
               
  }                
       
}




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

使用道具 举报

109

主题

5564

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10572
金钱
10572
注册时间
2017-2-18
在线时间
1914 小时
发表于 2020-2-22 19:10:22 | 显示全部楼层
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
18
金钱
18
注册时间
2020-4-7
在线时间
6 小时
发表于 2020-4-7 19:18:36 | 显示全部楼层
多谢分享!!!!
回复 支持 反对

使用道具 举报

4

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2018-5-15
在线时间
9 小时
发表于 2020-6-6 16:36:46 | 显示全部楼层
吸取教训,刚要用到这个。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-9 12:01

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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