[APM32F1] 采用RTC闹钟中断的方式对F103的StandBy模式进行唤醒

[复制链接]
1054|6
 楼主| 鱼香Rose 发表于 2022-11-27 15:54 | 显示全部楼层 |阅读模式
#申请原创# 本次测试使用的APM32F103VC_MINI板子,该款芯片支持睡眠、停止和待机三种低功耗模式。下面以 StandBy 模式也就是待机模式为例进行组件的使用分析,唤醒方式采用 RTC闹钟中断的方式进行唤醒。

APM32F103 待机模式介绍:
  APM32F103待机模式的各种特性如下所示。在待机模式下除了关闭所有的时钟,还把 1.2V 区域的电源区也完全关闭了,也就是说,从待机模式唤醒后,由于没有之前代码的运行备份,相当于对芯片复位,重新检测 boot 条件,从头开始执行程序。唤醒方式有WKUP 引脚的上升
沿、RTC 闹钟事件、NRST 引脚上的外部复位,IWDT复位,下面来看下RTC闹钟事件是如何唤醒的。

22.png

实验设计:
MCU启动后让LED2闪烁,然后延时4s后时钟闹钟唤醒时间,发生唤醒时间后唤醒MCU并点亮LED3。

1、相关时钟的初始化,以及LED的初始化。
  1. int i =0;
  2.     RCM_EnableAPB1PeriphClock((RCM_APB1_PERIPH_T)(RCM_APB1_PERIPH_PMU | RCM_APB1_PERIPH_BAKR));

  3.     APM_MINI_LEDInit(LED2);
  4.     APM_MINI_LEDInit(LED3);
  5.     APM_MINI_LEDOff(LED2);
  6.     APM_MINI_LEDOff(LED3);
  7.     SysTick_Init();   //LED2闪烁
  1. void SysTick_Handler(void)
  2. {
  3.     APM_MINI_LEDToggle(LED2);
  4. }

2、RTC初始化
  1.     PMU_EnableBackupAccess();
  2.     RTC_Init();
3、 通过SB**判断是上电复位还是RTC闹钟事件,如果是中STAND_BY唤醒则点亮LED3
  1. void RTC_Init(void)
  2. {
  3.           
  4.     if(PMU_ReadStatusFlag(PMU_FLAG_SB) == SET) //从standby模式唤醒
  5.     {
  6.         APM_MINI_LEDOn(LED3);

  7.         PMU_ClearStatusFlag(PMU_FLAG_SB);

  8.         RTC_WaitForSynchro();
  9.     }
  10.     else                               //上电复位
  11.     {
  12.         BAKPR_Reset();

  13.         RCM_ConfigLSE(RCM_LSE_OPEN);
  14.         while(RCM_ReadStatusFlag(RCM_FLAG_LSERDY) == RESET);
  15.         RCM_ConfigRTCCLK(RCM_RTCCLK_LSE);
  16.         RCM_EnableRTCCLK();

  17.         RTC_WaitForSynchro();
  18.         RTC_ConfigPrescaler(32767);
  19.         RTC_WaitForLastTask();
  20.     }
  21. }
4、延时4s,然后进入STAND_BY模式
  1.     for(i=0;i<=0x1ffffff;i++); //延时4s

  2.                 RTC_ConfigAlarm(RTC_ReadCounter()+ 3);
  3.                 RTC_WaitForLastTask();

  4.                 PMU_EnterSTANDBYMode();

有兴趣的小伙伴,也来测试一下吧~

PMU_Standby.rar

2.68 MB, 下载次数: 7

pl202 发表于 2022-12-1 17:04 | 显示全部楼层
RTC的可以进入哪个模式的低功耗呢?
kkzz 发表于 2022-12-1 18:07 | 显示全部楼层
rtc唤醒可以网络唤醒吗                 
wilhelmina2 发表于 2022-12-1 18:27 | 显示全部楼层
待机模式是功耗最低的一种模式。RTC的精度怎么样?
1988020566 发表于 2022-12-1 19:13 | 显示全部楼层
这个串口怎么唤醒单片机呢?              
10299823 发表于 2022-12-1 20:34 | 显示全部楼层
中断唤醒和rtc唤醒什么区别?   
bestwell 发表于 2022-12-1 21:15 | 显示全部楼层
RTC能产生毫秒级的中断吗               
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

14

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部