用户工具

站点工具


icore3l_arm-gd_13

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

icore3l_arm-gd_13 [2022/06/10 14:45] (当前版本)
sean 创建
行 1: 行 1:
 +|**银杏科技有限公司旗下技术文档发布平台** ​ ||||
 +|技术支持电话|**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|}}
  
icore3l_arm-gd_13.txt · 最后更改: 2022/06/10 14:45 由 sean