关于ch378 文件属性中的时间问题?

那个我如果想要获取文件的时间信息的话是根据EXAM10的例程来改动吗?status = CH378DirInfoRead( 0xFF );  /* 读取当前文件的目录信息FAT_DIR_INFO,将相关数据调到内存中 */

这个函数说是会将关数据调到内存中我不是特别清楚那个调入内存中的意思,是缓存到下面这个函数中的buf中去了吗?

CH378ReadReqBlock( buf );

pDir = (P_FAT_DIR_INFO)buf;   /* 当前文件目录信息 */

那个我读出DIR_CrtTimeTenth;/* 0DH,文件创建的时间,以0.1秒单位计数 */得到的值为25

DIR_CrtTime;/* 0EH,文件创建的时间 */

得到的值为34596

DIR_CrtDate;/* 10H,文件创建的日期 */

得到的值为18734

请问我需要怎么转换成常用的时间单位呢?


/* Time = (Hour<<11) + (Minute<<5) + (Second>>1) */
#define MAKE_FILE_TIME( h, m, s ) ( (h<<11) + (m<<5) + (s>>1) ) /* 生成指定时分秒的文件时间数据 */
/* 文件日期 UINT16 */
/* Date = ((Year-1980)<<9) + (Month<<5) + Day */
#define MAKE_FILE_DATE( y, m, d ) ( ((y-1980)<<9) + (m<<5) + d ) /* 生成指定年月日的文件日期数据 */


那个我的结构体里面关于时间信息的只有

UINT8DIR_CrtTimeTenth;/* 0DH,文件创建的时间,以0.1秒单位计数 */

UINT16DIR_CrtTime;/* 0EH,文件创建的时间 */

UINT16DIR_CrtDate;/* 10H,文件创建的日期 */

我的文件夹创建时间如下所示


blob.png

但是我收到的数据中

DIR_CrtTimeTenth=25    /* 0DH,文件创建的时间,以0.1秒单位计数 */

DIR_CrtTime=34596 /* 0EH,文件创建的时间 */

DIR_CrtDate=18734 /* 10H,文件创建的日期 */

那个我的时间单位中的小时和年份能反推导出来但是其他的信息好像都不对?该怎么解决呢?




不好意思,是我推导错误。结果是正确的


只有登录才能回复,可以选择微信账号登录