标题:
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