本帖最后由 1201yuge 于 2016-4-9 09:31 编辑
我写一个程序,让单片机进入低功耗运行模式,调用了wfe();函数,进入之前已经设置好RTC唤醒时间,但是就是无法唤醒,使用IAR仿真,观察寄存器的值,然后发现。。发现没有WFE_CR4寄存器,但是,手册上就有的呀,(RTC在WFE_CR4的最低位。)
注:程序配置没有问题,在STM8l152r8t6上面可以从WFE();后面唤醒,这个stm8l152c6不可以,手册上写的是有这个功能的,奇怪了。
配置代码:
1.
/* Configures the RTC wakeup timer_step = RTCCLK/16 = LSE/16 = 488.28125 us */
RTC_WakeUpClockConfig(RTC_WakeUpClock_RTCCLK_Div16);
/* Enable wake up unit Interrupt */
RTC_ITConfig(RTC_IT_WUT, ENABLE);
/* RTC wake-up event every 1s (timer_step x (2047 + 1) )*/
RTC_SetWakeUpCounter(20479); //10s
/* Enable general Interrupt*/
RTC_WakeUpCmd(ENABLE);
enableInterrupts();
2.
/* Set trigger on RTC WUP*/
WFE->CR4 |= 0x01;//External interrupts from RTC WUP events
for (i=0; i<100; i++);
/*Wait for end of counter */
wfe();
RTC->ISR2 &= 0xfb; //Clear interrupter flag.
WFE->CR4 = 0x00; //RTC WUP interrupt disabled
@八度空间
一周热门 更多>