求助stm8L051 RTC 唤醒失败

2019-12-14 13:02发布

        /* Select HSE as system clock source */
        CLK_SYSCLKSourceSwitchCmd(ENABLE);
        CLK_SYSCLKSourceConfig(CLK_SYSCLKSource_LSI);
        /* system clock prescaler: 1*/
        CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_1);
        while (CLK_GetSYSCLKSource() != CLK_SYSCLKSource_LSI)
        {}
        CLK_PeripheralClockConfig(CLK_Peripheral_RTC, ENABLE);
        CLK_RTCClockConfig(CLK_RTCCLKSource_LSI, CLK_RTCCLKDiv_1);
        while (CLK_GetFlagStatus(CLK_FLAG_LSIRDY) == RESET);
        RTC_WakeUpClockConfig(RTC_WakeUpClock_RTCCLK_Div16);
        RTC_ITConfig(RTC_IT_WUT, ENABLE);
        enableInterrupts();

        while(1)
                {        
                RTC_SetWakeUpCounter(1);
                RTC_WakeUpCmd(ENABLE);
                halt();
                RTC_WakeUpCmd(DISABLE);
                GPIO_ToggleBits(LED_GPIO_PORT, LED_GPIO_PINS);        
                }
RTC配置会卡在RTC_WakeUpCmd(ENABLE)函数内的
/* Wait until WUTWF flag is set */
    while (((RTC->ISR1 & RTC_ISR1_WUTWF) == RESET) && ( wutwfcount != WUTWF_TIMEOUT))
    {
      wutwfcount++;
    }
请问给为前辈,是我哪里没有配置好吗?
       
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答
newphj
1楼-- · 2019-12-14 14:43
while(1)
                {        
                RTC_WakeUpCmd(ENABLE);
                halt();
                RTC_WakeUpCmd(DISABLE);
                GPIO_ToggleBits(LED_GPIO_PORT, LED_GPIO_PINS);        
                }
这样就好了,知其然而不知其所以然。

一周热门 更多>