这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » GD32F4系列RTC使用外部低速晶振配置时钟问题

共2条 1/1 1 跳转至

GD32F4系列RTC使用外部低速晶振配置时钟问题

工程师
2023-08-26 19:08:55     打赏

参照官方例程配置RTC时钟如下,使用外部32.768KHZ晶振,在自己的板子上仿真发现,程序在rtc_register_sync_wait();时钟同步这一步出现问题,无法同步。导致后面设置RTC时间失败。但是我将程序烧录到demo板上测试是没问题的,有哪位大佬知道这是什么问题?
void rtc_pre_config(void)
{
    /* enable access to RTC registers in backup domain */
    rcu_periph_clock_enable(RCU_PMU);  //使能PMU电源管理单元时钟
    pmu_backup_write_enable();  //使能电源备份源,RTC需要此备份域
    rcu_osci_on(RCU_LXTAL);  //使用外部晶振32.768K
    rcu_osci_stab_wait(RCU_LXTAL);
    rcu_rtc_clock_config(RCU_RTCSRC_LXTAL);  //配置RTC时钟源为外部晶振32.768K
    prescaler_a = 0x7F;  //ck_apre频率 = RTC_CLOCK/(prescaler_a+1) = 32768/(127+1)=256HZ
    prescaler_s = 0xFF;  //ck_spre频率 = ck_apre/(prescaler_s+1) = 256/(255+1)=1HZ
    rcu_periph_clock_enable(RCU_RTC);  //使能RTC外设时钟
    rtc_register_sync_wait();
}




关键词: GD32F4     RTC     晶振    

助工
2023-08-26 19:10:18     打赏
2楼

这样应该可以:

void rtc_pre_config(void)
{
rcu_periph_clock_enable(RCU_PMU);  //Enable the PMU clock
    pmu_backup_write_enable();  //Enable the power backup source. RTC requires this backup domain
    rcu_bkp_reset_enable();
    rcu_bkp_reset_disable();

rcu_osci_on(RCU_LXTAL);  //Use LXTAL(32.768K)
rcu_osci_stab_wait(RCU_LXTAL);
rcu_rtc_clock_config(RCU_RTCSRC_LXTAL);  //The RTC clock source is LXTAL(32.768K)

prescaler_a = 0x7F;
prescaler_s = 0xFF;
rcu_periph_clock_enable(RCU_RTC);
rtc_register_sync_wait();

rcu_osci_on(RCU_LXTAL);
    rcu_osci_stab_wait(RCU_LXTAL);
    rcu_rtc_clock_config(RCU_RTCSRC_LXTAL);
    prescaler_a = 0x7F;
    prescaler_s = 0xFF; 


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]