介绍
RTC (Real-Time Clock)实时时钟可以提供精确的实时时间,它可以用于产生年、月、日、时、分、秒等信息。目前实时时钟芯片大多采用精度较高的晶体振荡器作为时钟源。有些时钟芯片为了在主电源掉电时还可以工作,会外加电池供电,使时间信息一直保持有效。
RT-Thread 的 RTC设备为操作系统的时间系统提供了基础服务。面对越来越多的 IoT 场景,RTC 已经成为产品的标配,甚至在诸如 SSL 的安全传输过程中,RTC 已经成为不可或缺的部分。
步骤
首先启用软件模拟 RTC:
然后我们在 main.c 中加入如下内容:
#define RTC_NAME "rtc"
#include
static int rtc_sample(int argc, char argv[])
{
rt_err_t ret = RT_EOK;
time_t now;
rt_device_t device = RT_NULL;
/ 寻找设备 /
device = rt_device_find(RTC_NAME);
if (!device)
{
LOG_E("find %s failed!", RTC_NAME);
return RT_ERROR;
}
/ 初始化RTC设备 /
if(rt_device_open(device, 0) != RT_EOK)
{
LOG_E("open %s failed!", RTC_NAME);
return RT_ERROR;
}
/ 设置日期 /
ret = set_date(2018, 12, 3);
if (ret != RT_EOK)
{
rt_kprintf("set RTC date failedn");
return ret;
}
/ 设置时间 /
ret = set_time(11, 15, 50);
if (ret != RT_EOK)
{
rt_kprintf("set RTC time failedn");
return ret;
}
/ 延时3秒 /
rt_thread_mdelay(3000);
/ 获取时间 /
now = time(RT_NULL);
rt_kprintf("%sn", ctime(&now));
return ret;
}
/ 导出到 msh 命令列表中 */
MSH_CMD_EXPORT(rtc_sample, rtc sample);
代码解读:首先设置了年月日时分秒信息为2018年12月3日11:15:50,然后延时 3 秒后获取当前时间信息,应当显示2018年12月3日11:15:53。
编译下载运行:
-
实时时钟
+关注
关注
4文章
245浏览量
65767 -
晶体振荡器
+关注
关注
9文章
617浏览量
29103 -
电池供电
+关注
关注
0文章
255浏览量
22150 -
RTC
+关注
关注
2文章
538浏览量
66456 -
ART-Pi
+关注
关注
0文章
23浏览量
1296
发布评论请先 登录
相关推荐
评论