RTC(实时时钟)是 real time clock的简称,是一种计算机时钟,通常采用集成电路的形式,专门用于计时。自然地,它可以计算秒、分、小时、日、月甚至是年。RTC可以在个人计算机、嵌入式系统和服务器中找到,并且存在于任何可能需要精确计时的电子设备中。即使设备电源关闭,仍能通过电池或独立于系统的电源供电。
RTC 有哪些好处呢?
那么,如何在我们的OneOS中使用RTC呢,下面我们来一起操作一下吧。
以下配置均以万耦一代开发板(STML475)为例,配置硬件 RTC, 并生成工程。
1.打开 oneos\projects\xxxxx(project文件夹)\board\CubeMX_Config下 的 CUBE 工程文件(xxx.ioc);
2.在 CUBE 工程中进行 RTC 配置,如下图所示,红色框选中的地方依次选择RTC、勾选Activate Clock Source,然后点击③的Clock Configuration检查时钟选择,最后点击④的GENARATE CODE 生成代码;
确认是否修改时钟配置,如有修改,则使用CubeMX_Config\Src文件夹中main.c的void SystemClock_Config(void)替换掉同目录下bsp.c中的SystemClock_Config(void)。
1.在对应的 oneos\projects\xxxxx(project文件夹) 目录下打开OneOS-Cube工具,在命令行输入 menuconfig 打开可视化配置界面;
2.通过[↑]、[↓]按键、空格、enter键或向右方向键选择 Drivers->RTC 下的Using RTC drivers选项,如下所示:
(Top) → Drivers→ RTC
[*] Using RTC drivers
3.Esc键退出menuconfig,注意保存所修改的设置。
在上一步打开的OneOS-Cube 工具命令行中输入 scons --ide=mdk5重新构建keil工程。
1.打开对应的 oneos\projects\xxxxx(project文件夹) 目录下的 project.uvprojx 工程文件,此时即可在工程中添加相应的应用程序。
2.如下图所示,在打开的工程application 文件夹中右键选择Manage Project Items,按图示添加提供的rtc_test.c文件(路径:oneos\drivers\driver_test);
3.编译并下载工程,运行程序;
4.打开串口工具如xshell等,通信成功后,即可通过输入rtc_set_test设置RTC的时间,输入rtc_get_test可获取当前的时间;
5.通过修改rtc_test.c中所设置的时间,查看效果。
6.如不再使用RTC设备,可再次使用OneOS-Cube工具取消,在Drivers->RTC 下取消Using RTC drivers 的选择,保存设置后重新生成工程即可。
串口交互记录如下:
sh />rtc_get_test
Sat Jan 1 00:30:20 2000
sh />
sh />rtc_set_test
Mon Jun 1 09:30:03 2020
sh />
sh />rtc_get_test
Mon Jun 1 09:30:05 2020
sh />
sh />rtc_get_test
Mon Jun 1 09:30:10 2020
|