注意:
1. 需要搭建GD32的library库;
2. 采用外挂的hsi作为时钟的输入源晶振,即32.768khz;
3. RTC处于备份电源区域,写其寄存器需要打开其电源,且使能可写位(详情可查看其规格书);
大致初始化流程如下:
void rtc_init(void)
{
/* reset backup domain */
bkp_deinit();
/* enable PMU and BKPI clocks */
rcu_periph_clock_enable(RCU_BKPI);
rcu_periph_clock_enable(RCU_PMU);
/* allow access to BKP domain */
pmu_backup_write_enable();
/* enable LXTAL */
rcu_osci_on(RCU_LXTAL);
/* disbale bypass mode */
rcu_osci_bypass_mode_disable(RCU_LXTAL);
/* wait till LXTAL is ready */
rcu_osci_stab_wait(RCU_LXTAL);
/* select RCU_LXTAL as RTC clock source */
rcu_rtc_clock_config(RCU_RTCSRC_LXTAL);
/* enable RTC Clock */
rcu_periph_clock_enable(RCU_RTC);
/* wait until last write operation on RTC registers has finished */
rtc_lwoff_wait();
/* set RTC prescaler: set RTC period to 1s */
rtc_presc