标题: stm32-RTC单片机时钟秒中断,不能每秒都进入 [打印本页]

作者: nanshancc    时间: 2022-11-27 08:39
标题: stm32-RTC单片机时钟秒中断,不能每秒都进入
RTC_SetPrescaler(32767);//设置RTC的分频,
RTC_WaitForLastTask();
RTC_SetCounter(0xf73f);//设置时间初值: 63295,0xf73f, 17:34:55

在RTC_IRQHandler里面打印串口输出,结果一直都是间隔7秒才打印一次,不应该是每秒都执行一次吗,是哪里的问题哦


作者: Y_G_G    时间: 2022-11-27 12:27
这是一个完整的初始化函数
void rtc_init(void)//RTC初始化设定
{
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);//打开电源时钟
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_BKP,ENABLE);//打开存储器时钟
        PWR_BackupAccessCmd(ENABLE);                                                                                        //使能RTC后备寄存器访问
        BKP_DeInit();                                                                                                                                                        //BKP外设全部寄存器设定为默认值
        RCC_LSEConfig(RCC_LSE_ON);                                                                                                //开启32.768外部时钟
        while(RCC_GetFlagStatus(RCC_FLAG_LSERDY)==RESET);        //等待时钟振荡
        RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);                                                //选定RTC时钟,选定后不能更改,除非复位
        RCC_RTCCLKCmd(ENABLE);                                                                                                                //使能RTC
        RTC_WaitForSynchro();                                                                                                                        //等待RTC的ABP时钟同步
        RTC_WaitForLastTask();                                                                                                                //等待最近一次对RTC写操作的完成
        RTC_ITConfig(RTC_IT_SEC,ENABLE);                                                                        //使能RTC中断
        RTC_WaitForLastTask();                                                                                                                //等待最近一次对RTC写操作的完成
        RTC_SetPrescaler(32768-1);                                                                                                //RTC分频设定
        RTC_WaitForLastTask();                                                                                                                //等待最近一次对RTC写操作的完成
       
        RTC_NVIC_Config();                                                                                                                                //RTC中断设定
        RTC_WaitForLastTask();                                                                                                                //等待最近一次对RTC写操作的完成       
        Set_RTC_Val(0);
        BKP_WriteBackupRegister(BKP_DR1,0xa5a5);                                        //已经初始化过RTC,可以写入
}




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1