主要代码如下:
/************************* RTC初始化 **************************/
RTC_TMRFunCfg( Period_1_S ); /* 配置RTC定时周期 */
RTC_ModeFunDisable( RTC_TRIG_MODE ); /* 禁用RTC触发模式 */
NVIC_EnableIRQ( RTC_IRQn ); /* 使能外部中断 */
PWR_PeriphWakeUpCfg( ENABLE, RB_SLP_RTC_WAKE ); /* 睡眠唤醒源配置RTC 为唤醒源 */
/************************* 清除RTC定时中断标志状态 **************************/
void RTC_IRQHandler(void)
{
R8_RTC_FLAG_CTRL =(RB_RTC_TMR_CLR);
} |
@SwaveYu :关于定时唤醒,睡眠模式的时钟在哪怎么配置的代码,可以发一下吗?跪求
@WCHTech2 :那用到蓝牙库怎么使用rtc定时唤醒
@SwaveYu :您好,如果用到蓝牙的功能,建议不要直接控制RTC相关的寄存器,如RTC的中断使能和开关,因为蓝牙库的运行需要使用RTC的触发中断。 如果不用蓝牙库,可以参考手册使用即可。
在踩了一天坑后,终于实现配置RTC按一定周期进入中断了。 首先说下坑,RTC中断模式有两种进入方式,定时和触发。而默认状态下,两种模式都开启。所以在只使用定时模式的时候需要先把触发模式禁用,否则会一直在RTC中断服务函数中。另外睡眠模式下RTC计数32K低频时钟来源得是内部的,如果之前设为外部来源会导致进入睡眠模式后无法被定时唤醒。