RTC获取时间戳,使用mktime获取到的时间戳不正确?
因为不定时的会发现时间不正确,跳到了2037年,而寄存器并未出错。
所以在程序RTC驱动文件中,获取RTC寄存器部分的代码加入rt_kprintf,来打印时间戳,检查错误,结果发现mktime出来的时间戳有问题,然而又找不到这个函数的定义。请大佬给个解决思路。
`
/* get current time */
now = time(RT_NULL);
/* lock scheduler. */
rt_enter_critical();
/* converts calendar time time into local time. */
p_tm = localtime(&now);
/* copy the statically located variable */
memcpy(&tm_new, p_tm, sizeof(struct tm));
/* unlock scheduler. */
rt_exit_critical();
sprintf(pstr, "%04d-%02d-%02d", (int)(tm_new.tm_year + 1900), (int)(tm_new.tm_mon + 1), (int)tm_new.tm_mday);
`
楼主看下获取时间应该这么操作下
这个路径的没找到,找到的time.c中没有这个函数
那就全局搜下,否则,会编译失败。
可能版本不对吧 ,也不去更新了 我把localtime和mktime重写了 暂时没发现问题 出问题再去试试 谢了老哥