嵌入式技术论坛
直播中

万物死

8年用户 1314经验值
擅长:MEMS/传感技术
私信 关注
[问答]

请问一下怎样获取RTC的具体数值呢?

API手册上只有 set_date(),set_time(),time() 这几个函数。
例程里面有一个 rt_kprintf(“%s
“, ctime(&now)); 的语句获得年月日时分秒的字符串。

请问一下,怎样获取年月日时分秒的具体数值?
API手册里找不到这样的函数。

另外 ctime() 这个函数在哪里能看到源代码?

回帖(3)

李鑫

2023-1-30 10:48:09
struct tm *tm_now;
struct tm now;
time_t __time;

__time = time(NULL);

/ converts calendar time time into local time. /
tm_now = localtime(&__time);
/ copy the statically located variable /
memcpy(&now, tm_now, sizeof(struct tm));
/
now.tm_hour 时
now.tm_min 分
now.tm_sec 秒
now.tm_year 年
now.tm_mon 月
now.tm_mday 日 /[/code]

struc tm 结构如下

[code]struct tm {
int tm_sec; / 秒,范围从 0 到 59 /
int tm_min; / 分,范围从 0 到 59 /
int tm_hour; / 小时,范围从 0 到 23 /
int tm_mday; / 一月中的第几天,范围从 1 到 31 /
int tm_mon; / 月份,范围从 0 到 11 /
int tm_year; / 自 1900 起的年数 /
int tm_wday; / 一周中的第几天,范围从 0 到 6 /
int tm_yday; / 一年中的第几天,范围从 0 到 365 /
int tm_isdst; / 夏令时 /
};
举报

王莉

2023-1-30 10:48:59
1,关于获取具体时间,你发的例程里面
  1. rt_kprintf(“%sn”, ctime(&now));
这一句的头一句就是获取时间。代码如下
time_t now; / 保存获取的当前时间值 /
/ 获取时间 /
now = time(RT_NULL);
/ 打印输出时间信息 /
rt_kprintf(“%sn”, ctime(&now));
2,ctime函数是实现时间结构体转字符显示用的,具体实现取决于各编译器(keil的armcc,gcc的newlib,iar等各有不同的实现)。不过rtt带了一个与编译器附带c库无关的ctime实现,在componentslibccompilersminilibctime.c
3,time函数也是c库函数,不过这个函数与具体硬件有关,所以rtt针对每个编译器附带的c库都有一份实现,也是在componentslibccompilers*time.c(*表示通配符)里面。
举报

杨秀英

2023-1-30 10:49:06
在MSH中输入date就会返回具体的年月日时分秒
举报

更多回帖

发帖
×
20
完善资料,
赚取积分