|**银杏科技有限公司旗下技术文档发布平台** |||| |技术支持电话|**0379-69926675-801** ||| |技术支持邮件|Gingko@vip.163.com ||| ^ 版本 ^ 日期 ^ 作者 ^ 修改内容 ^ | V1.0 | 2020-11-14 | gingko | 初次建立 | \\ \\ ===== 实验十三:RTC实时时钟实验——显示日期和时间 ===== ==== 一、实验目的与意义 ==== - 了解GD32 RTC结构 - 了解GD32 RTC特征 - 了解 RTC特征和应用领域 - 掌握 GD32固件库中RTC属性的配置方法 - 掌握KEIL MDK集成开发环境使用方法 ==== 二、实验设备及平台 ==== - iCore3L 双核心板 - JLINK(或相同功能)仿真器 - Micro USB线缆 - Keil MDK 开发平台 -装有WIN XP(及更高版本)系统的计算机 ==== 三、实验原理 ==== **GD32 RTC简介** * RTC模块提供了一个包含日期(年/月/日)和时间(时/分/秒/亚秒)的日历功能。除亚秒用二进制码显示外,时间和日期都以BCD码的形式显示。RTC可以进行夏令时补偿。RTC可以工作在省电模式下,并通过软件配置来智能唤醒。RTC支持外接更高精度的低频时钟,用以达到更高的日历精度。 * RTC 单元有三个可选的独立时钟源:LXTAL、IRC32K和HXTAL的2~31(由 RCU_CFG 寄存器配置)分频后的时钟。 * 在RTC单元,有两个预分频器用来实现日历功能和其他功能。一个分频器是7位异步预分频器,另一个是15位同步预分频器。异步分频器主要用来降低功率消耗。如果两个分频器都被使用,建议异步分频器的值尽可能大。 ** RTC主要特征 ** * 通过软件设置来实现夏令时补偿; * 参考时钟检测功能:通过外接更高精度的低频率时钟源(50Hz或60Hz)来提高日历精度; * 数字校准功能:通过调整最小时间单位(最大可调精度0.95ppm)来进行日历校准; * 通过移位功能进行亚秒级调整; * 记录事件时间的时间戳功能; * 两个模式可配置的独立的侵入检测; * 可编程的日历和两个位域可屏蔽的闹钟; * 可屏蔽的中断源: 闹钟0和闹钟1;时间戳检测;侵入检测;自动唤醒事件; * 20个32位(共80字节)通用备份寄存器,能够在省电模式下保存数据。当有外部事件侵入时,备份寄存器将会复位。 * RTC结构框图如图所示: {{:icore3l:arm_13_1.jpg?700|}} * 预分频器:预分频器PRER由7位的异步预分频器和15位的同步预分频器组成。异步预分频器时钟用于为二进制 RTC_SS亚秒递减计数器提供时钟,同步预分频器时钟用于更新日历。 * 影子寄存器:当APB总线访问RTC日历寄存器RTC_DATE、RTC_TIME和RTC_SS时,BPSHAD位决定是访问影子寄存器还是真实日历寄存器。默认情况下BPSHAD为0,APB总线访问影子日历寄存器。每两个RTC时钟,影子日历寄存器值会更新为真实日历寄存器的值,与此同时RSYNF位也会再次置位。 * 实时时钟和日历:实时时钟一般表示为:时/分/秒/亚秒,时分秒可直接从RTC时间寄存器(RTC_TIME)中读取。日期包含的年月日可直接从RTC 日期寄存器 (RTC_DATE)中读取。 ====四、实验步骤==== - 把仿真器与iCore3L的SWD调试口相连(直接相连或者通过转接器相连); - 把iCore3L通过Micro USB线与计算机相连,为iCore3L供电; - 打开Keil MDK 开发环境,并打开本实验工程; - 烧写程序到iCore3L上; - 也可以进入Debug 模式,单步运行或设置断点验证程序逻辑。 ====五、实验现象==== 串口打印时间日期正常,结果如图所示。 {{:icore3l:arm_13_2.png?500|}}