在涉及到Fatfs工程中需要将记录下文件的 操作时间,
因此需要将系统当前的时间写入到系统内到了这个函数:
使用此函数之前需要先设置一下:
//FFconf.h
#define FF_FS_NORTC 0
#define FF_NORTC_MON 1
#define FF_NORTC_MDAY 1
#define FF_NORTC_YEAR 2024
/* The option FF_FS_NORTC switches timestamp functiton. If the system does not have
/ any RTC function or valid timestamp is not needed, set FF_FS_NORTC = 1 to disable
/ the timestamp function. Every object modified by FatFs will have a fixed timestamp
/ defined by FF_NORTC_MON, FF_NORTC_MDAY and FF_NORTC_YEAR in local time.
/ To enable timestamp function (FF_FS_NORTC = 0), get_fattime() function need to be
/ added to the project to read current time form real-time clock. FF_NORTC_MON,
/ FF_NORTC_MDAY and FF_NORTC_YEAR have no effect.
/ These options have no effect in read-only configuration (FF_FS_READONLY = 1). */
之后将时间传进去:
uint16_t date_time[6] = {2024,5,20,01,20,10};
//获得时间
//User defined function to give a current time to fatfs module */
//31-25: Year(0-127 org.1980), 24-21: Month(1-12), 20-16: Day(1-31) */
//15-11: Hour(0-23), 10-5: Minute(0-59), 4-0: Second(0-29 *2) */
DWORD get_fattime(void)
{
DWORD u16_dateTime;
u16_dateTime = date_time[0]- 1980;
u16_dateTime = u16_dateTime<<25;
u16_dateTime |= date_time[1]<<21;
u16_dateTime |= date_time[2]<<16;
u16_dateTime |= date_time[3]<<11;
u16_dateTime |= date_time[4]<<5;
u16_dateTime |= date_time[5];
return u16_dateTime;
}
之后打开查看: