CConfig(RCC_RTCCLK_Div32); // 设置RTC时钟预分频
RTC_WaitForLastTask(); // 等待最近的对RTC寄存器的写操作完成
RTC_WaitForSynchro(); // 等待RTC寄存器同步完成
RTC_ITConfig(RTC_IT_SEC, ENABLE); // 使能RTC相关的中断
RTC_WaitForLastTask(); // 等待最近的对RTC寄存器的写操作完成
RTC_EnterConfigMode(); // 进入RTC配置模式
RTC_SetPrescaler(32767); // 设置RTC时钟预分频寄存器(PRL),RTC的频率 = RTCCLK/(PRL+1)
RTC_WaitForLastTask(); // 等待最近的对RTC寄存器的写操作完成
RTC_ExitConfigMode(); // 退出RTC配置模式
RTC_WaitForLastTask(); // 等待最近的对RTC寄存器的写操作完成
}
这是一个初始化RTC的代码示例,其中设置了RTC时钟的预分频寄存器(PRL),计算公式为RTC的频率 = RTCCLK / (PRL + 1)。如果在调试中无法显示PRL寄存器的值,通常是由于Keil的调试工具问题。可以尝试使用其他的调试工具,如J-Link等,来查看PRL寄存器的值。此外,还可以尝试在程序中添加打印语句来打印PRL寄存器的值,以便确认其正确性。
CConfig(RCC_RTCCLK_Div32); // 设置RTC时钟预分频
RTC_WaitForLastTask(); // 等待最近的对RTC寄存器的写操作完成
RTC_WaitForSynchro(); // 等待RTC寄存器同步完成
RTC_ITConfig(RTC_IT_SEC, ENABLE); // 使能RTC相关的中断
RTC_WaitForLastTask(); // 等待最近的对RTC寄存器的写操作完成
RTC_EnterConfigMode(); // 进入RTC配置模式
RTC_SetPrescaler(32767); // 设置RTC时钟预分频寄存器(PRL),RTC的频率 = RTCCLK/(PRL+1)
RTC_WaitForLastTask(); // 等待最近的对RTC寄存器的写操作完成
RTC_ExitConfigMode(); // 退出RTC配置模式
RTC_WaitForLastTask(); // 等待最近的对RTC寄存器的写操作完成
}
这是一个初始化RTC的代码示例,其中设置了RTC时钟的预分频寄存器(PRL),计算公式为RTC的频率 = RTCCLK / (PRL + 1)。如果在调试中无法显示PRL寄存器的值,通常是由于Keil的调试工具问题。可以尝试使用其他的调试工具,如J-Link等,来查看PRL寄存器的值。此外,还可以尝试在程序中添加打印语句来打印PRL寄存器的值,以便确认其正确性。
举报