GD32F4—RTC闹钟及自动唤醒中断配置详解

本文详细介绍了GD32F4系列单片机的RTC模块配置,包括RTC的初始化、时钟源选择、RTC时间与闹钟时间的BCD编码配置,以及自动唤醒中断的设置。RTC支持使用外部32.768K晶振提高精度,其自动递减计数器功能可用于周期性唤醒,并可通过不同时钟分频设置实现不同唤醒周期。
摘要由CSDN通过智能技术生成

GD32F4—RTC闹钟及自动唤醒中断配置详解

一、简介

GD32F4x的RTC例程网上资源较少,详细阅读用户手册后做出如下配置。RTC模块提供了一个包含日期(年/月/日)和时间(时/分/秒/亚秒)的日历功能。除亚秒用二进制码显示外,时间和日期都以BCD码的形式显示。RTC可以进行夏令时补偿。RTC可以工作在省电模式下,并通过软件配置来智能唤醒。RTC支持外接更高精度的低频时钟,用以达到更高的日历精度。下边就以RTC模块的框图为引线,对RTC的相关功能和操作做相关介绍。

二、框图

在这里插入图片描述
RTC单元有三个可选的独立时钟源:LXTAL、IRC32K和HXTAL,一般选用LXTAL外部32.768K晶振,内部晶振受温漂影响,计时会存在较大的误差。LXTAL随后经过一个7位的异步预分频(默认值为127+1)和一个15位的同步预分频(255+1),得到1Hz的时钟频率。

三、RTC 初始化和配置

在默认情况下,PMU_CTL寄存器的BKPWEN位被清0。所以写RTC寄存器前需要软件提前设置BKPWEN位。RTC_BKPx寄存器处于VDD备份域中,即使VDD电源被切断,该区域的寄存器的电源还可由VBAT提供。从待机模式唤醒或系统复位操作都不会影响这些寄存器。只有当被检测到有侵入事件和备份域复位时,这些寄存器复位。

#define BKP_VALUE    0x32F1
void RTC_Config(void)
{
   
	//rcu_bkp_reset_enable();//复位备份域
	rcu_periph_clock_enable(RCU_PMU);//使能PMU电源管理单元时钟
	pmu_backup_write_enable();//使能电源备份源,置位BKPWEN位。
	
	/***配置外部时钟***/
	rcu_osci_on(RCU_LXTAL); //使用外部晶振32.768K
	rcu_osci_stab_wait(RCU_LXTAL);//等待振荡器稳定标志位置位或振荡器起振超时
	rcu_rtc_clock_config(RCU_RTCSRC_LXTAL);//配置RTC时钟源为外部晶振32.768K
	rcu_periph_clock_enable(RCU_RTC);//使能RTC外设时钟
	rtc_register_sync_wait();//等待RTC寄存器(RTC_TIME、RTC_DATE)与RTC的APB时钟同步
	WakeupConfig();//唤醒中断配置
	//AlarmConfig();//闹钟中断配置
	if(RTC_BKP0 == BKP_VALUE)//设置后系统复位不会在重新配置时间
	  return;
	RTC_SetTime(22,9,30,23,59,59)
  • 9
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值