STM8lC6T6的RTC事件(WFE)唤醒功能?,醉了。。。

2019-07-19 21:18发布

本帖最后由 1201yuge 于 2016-4-9 09:31 编辑

    我写一个程序,让单片机进入低功耗运行模式,调用了wfe();函数,进入之前已经设置好RTC唤醒时间,但是就是无法唤醒,使用IAR仿真,观察寄存器的值,然后发现。。发现没有WFE_CR4寄存器,但是,手册上就有的呀,(RTC在WFE_CR4的最低位。)
    2.png 1.png
111.jpg

注:程序配置没有问题,在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



@八度空间
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。