以RISC-V MCU CH32V307为例。 RTC,Real Time Clock,实时时钟,可以在不需要外部中断的情况下唤醒低功耗模式下的MCU。
RTC提供的定时闹钟事件,可以周期性的唤醒MCU。
1. RTC唤醒配置
RTC唤醒配置步骤如下:
-
配置RTC时钟
-
配置外部中断线17为上升沿触发
-
开启RTC闹钟事件中断
:::tip
详细的 RTC 配置可参考 RTC章节
:::
2. 参考代码
参考代码 - RTC唤醒停止模式
#include "debug.h"
void rtc_exit17_init(void)
{
EXTI_InitTypeDef EXTI_InitStructure = {0};
EXTI_ClearITPendingBit(EXTI_Line17);
EXTI_InitStructure.EXTI_Line = EXTI_Line17;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
NVIC_SetPriority(RTCAlarm_IRQn,0x00);
NVIC_EnableIRQ(RTCAlarm_