请教RTC实时时钟不准确的问题
答案:2 悬赏:10 手机版
解决时间 2021-03-03 11:14
- 提问者网友:你给我的爱
- 2021-03-03 06:32
请教RTC实时时钟不准确的问题
最佳答案
- 五星知识达人网友:野味小生
- 2021-03-03 08:06
有两种可能:
一 是否设置使用外部晶振
二 外部晶振频率是否正确
一 是否设置使用外部晶振
二 外部晶振频率是否正确
全部回答
- 1楼网友:毛毛
- 2021-03-03 09:36
void rcc_configuration(void)
{
errorstatus hsestartupstatus;
//使能外部晶振
rcc_hseconfig(rcc_hse_on);
//等待外部晶振稳定
hsestartupstatus = rcc_waitforhsestartup();
//如果外部晶振启动成功,则进行下一步操作
if(hsestartupstatus==success)
{
//开启flash预取指功能
flash_prefetchbuffercmd(flash_prefetchbuffer_enable);
//flash时序控制
//推荐值:sysclk = 0~24mhz latency=0
// sysclk = 24~48mhz latency=1
// sysclk = 48~72mhz latency=2
flash_setlatency(flash_latency_2);
//设置hclk(ahb时钟)=sysclk
rcc_hclkconfig(rcc_sysclk_div1);
//pclk2(apb2) = hclk
rcc_pclk2config(rcc_hclk_div1);
//pclk1(apb1) = hclk/2
rcc_pclk1config(rcc_hclk_div2);
//pll设置 sysclk/1 * 9 = 8*1*9 = 72mhz
rcc_pllconfig(rcc_pllsource_hse_div1, rcc_pllmul_9);
//启动pll
rcc_pllcmd(enable);
//等待pll稳定
while(rcc_getflagstatus(rcc_flag_pllrdy) == reset);
//系统时钟sysclk来自pll输出
rcc_sysclkconfig(rcc_sysclksource_pllclk);
//切换时钟后等待系统时钟稳定
while(rcc_getsysclksource()!=0x08)
{
}
}
else
{
while (1)
{
}
}
//下面是给各模块开启时钟
//启动gpio
rcc_apb2periphclockcmd(rcc_apb2periph_gpioa | rcc_apb2periph_gpioc |
rcc_apb2periph_gpiod,
enable);
//启动afio
rcc_apb2periphclockcmd(rcc_apb2periph_afio, enable);
}
void rtc_configuration(void)
{
//启用pwr和bkp的时钟(from apb1)
rcc_apb1periphclockcmd(rcc_apb1periph_pwr|rcc_apb1periph_bkp,enable);
//后备域解锁
pwr_backupaccesscmd(enable);
//备份寄存器模块复位
bkp_deinit();
//外部32.768k
rcc_lseconfig(rcc_lse_on);
//等待稳定
while(rcc_getflagstatus(rcc_flag_lserdy)==reset);
//rtc时钟源配置成lse(外部32.768k)
rcc_rtcclkconfig(rcc_rtcclksource_lse);
//rtc开启
rcc_rtcclkcmd(enable);
//开启后需要等待apb1时钟与rtc时钟同步,才能读写寄存器
rtc_waitforsynchro();
//读写寄存器前,要确定上一个操作已经结束
rtc_waitforlasttask();
//设置rtc分频器,使rtc时钟为1hz
//rtc period = rtcclk/rtc_pr = (32.768 khz)/(32767+1)
rtc_setprescaler(32763);
//加快一点,设置为32767一天慢20秒 设置为32764一天慢1秒
//等待寄存器写入完成
rtc_waitforlasttask();
//使能秒中断
rtc_itconfig(rtc_it_sec,enable);
//等待写入完成
rtc_waitforlasttask();
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
正方形一边上任一点到这个正方形两条对角线的 |
阴历怎么看 ? |