【rtthread设备】第二篇:rtc设备

[rtthread设备]系列文章

【rtthread设备】第零篇:IO设备
【rtthread设备】第一篇:pin设备
【rtthread设备】第二篇:rtc设备
【rtthread设备】第三篇:adc设备
【rtthread设备】第五篇:hwtimer设备
【rtthread设备】第六篇:i2c设备
【rtthread设备】第七篇:spi设备
【rtthread设备】第八篇:看门狗设备

一、rtc设备概念

二、rtc设备api

//设置rtc日期
/*
year:设置的年
month:设置的月
day:设置的日
*/
rt_err_t set_date(rt_uint32_t year, rt_uint32_t month, rt_uint32_t day)

//设置rtc时间
/*
hour:设置的时
minute:设置的分
second:设置的秒
*/
rt_err_t set_time(rt_uint32_t hour, rt_uint32_t minute, rt_uint32_t second)

//获取当前时间
time_t time(time_t *t)

三、rtc设备示例

/*
 * Copyright (c) 2006-2018, RT-Thread Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Change Logs:
 * Date           Author       Notes
 * 2018-11-30     misonyo      first implementation.
 */
/*
 * 程序清单:这是一个 RTC 设备使用例程
 * 例程导出了 rtc_sample 命令到控制终端
 * 命令调用格式:rtc_sample
 * 程序功能:设置RTC设备的日期和时间,延时一段时间后获取当前时间并打印显示。
*/

#include <rtthread.h>
#include <rtdevice.h>

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;
    }

    /* 延时3秒 */
    rt_thread_mdelay(3000);

    /* 获取时间 */
    now = time(RT_NULL);
    rt_kprintf("%s\n", ctime(&now));

    return ret;
}
/* 导出到 msh 命令列表中 */
MSH_CMD_EXPORT(rtc_sample, rtc sample);

Guess you like

Origin blog.csdn.net/weixin_43810563/article/details/116813301