找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1135|回復: 1
收起左側

stm32-RTC單片機時鐘秒中斷,不能每秒都進入

[復制鏈接]
回帖獎勵 10 黑幣 回復本帖可獲得 2 黑幣獎勵! 每人限 1 次
ID:1028013 發(fā)表于 2022-11-27 08:39 | 顯示全部樓層 |閱讀模式
RTC_SetPrescaler(32767);//設置RTC的分頻,
RTC_WaitForLastTask();
RTC_SetCounter(0xf73f);//設置時間初值: 63295,0xf73f, 17:34:55

在RTC_IRQHandler里面打印串口輸出,結果一直都是間隔7秒才打印一次,不應該是每秒都執(zhí)行一次嗎,是哪里的問題哦

回復

使用道具 舉報

ID:401564 發(fā)表于 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,可以寫入
}
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表