mdvcc 发表于 2019-5-31 10:05:10

STM8L的RTC时钟卡顿问题

uint8_t g_bTimeTick = 0;
void ChangeRTCTimeInter(uint8_t g_tRTCtime)//重设RTC时间
{
if(g_tRTCtime==1)
{
    RTC_ITConfig(RTC_IT_WUT, DISABLE);
    RTC_WakeUpCmd(DISABLE);
    g_bTimeTick = (g_bTimeTick + 1) % 150;   
    RTC_SetWakeUpCounter(RTC_1S - g_bTimeTick * 3 - g_bRandomTime%100);
    RTC_ITConfig(RTC_IT_WUT, ENABLE);
    RTC_WakeUpCmd(ENABLE);
}
else if(g_tRTCtime==2)
{
    RTC_ITConfig(RTC_IT_WUT, DISABLE);
    RTC_WakeUpCmd(DISABLE);   
    RTC_SetWakeUpCounter(RTC_100MS);
    RTC_ITConfig(RTC_IT_WUT, ENABLE);
    RTC_WakeUpCmd(ENABLE);
}
}

上面程序段是我来回切换RTC时间的函数,可是从1s切换到100ms时会出现卡顿,卡顿的时间有长有短,我初步判断是RTC切换到100ms时不稳定,导致RTC起不来。请坛里的大牛指点指点!

xing1954 发表于 2019-6-2 07:37:56

顶贴。

fubinfeng 发表于 2019-7-26 10:48:48

代码发全一点,你这好多变量和宏都不知道具体是什么,还有RTC的初始化
页: [1]
查看完整版本: STM8L的RTC时钟卡顿问题