前言
RTC是比较简单的设备,直接上手操作即可。
上手操作
配置RTC stack
如下图,配置一个RTC,记住名字g_rtc0,后面会用到。
配置RT-Thread Settings
使能RTC硬件
编写代码
RTC的代码直接参考RT-Thread的官方代码即可,但是这里遇到一个问题就是编译失败,发现是初始化的时候找不到rtc的配置数据结构,因为名字不对应,修改为我们配置好的名字即可。
报错文件为drv_rtc.c
默认的名字是g_rtc_ctrl与g_rtc_cfg,修改为g_rtc0_ctrl与g_rtc0_cfg。
修改后
RTC示例工作代码如下:
static int rtc_sample(int argc, char *argv[])
{
rt_err_t ret = RT_EOK;
time_t now;
ret = set_date(2018, 12, 3);
if (ret != RT_EOK)
{
rt_kprintf("set RTC date failed\n");
return ret;
}
ret = set_time(11, 15, 50);
if (ret != RT_EOK)
{
rt_kprintf("set RTC time failed\n");
return ret;
}
rt_thread_mdelay(3000);
now = time(RT_NULL);
rt_kprintf("%s\n", ctime(&now));
return ret;
}
/* 导出到 msh 命令列表中 */
MSH_CMD_EXPORT(rtc_sample, rtc sample);
展示效果
原作者:hehung
|