|
想請問我需要用時間來作為sd檔名
ex 年月日十分秒.bin
uint16_t year = 2024;
uint8_t month = 12;
uint8_t day = 12;
uint8_t hour = 12;
uint8_t min =23;
deci0 =year*10000+month*100+day;//20241212
deci1 = hour*100+min;//1223
memset(f_name, 0, sizeof(f_name));//清空 f_name
snprintf(f_num_name, sizeof(f_num_name), "%ld", deci0);
strcat(f_name, f_num_name);
snprintf(f_num_name, sizeof(f_num_name), "%ld", deci1);
strcat(f_name, f_num_name);
strcat(f_name, f_bin);
fs_handle.retUSER = f_open(&fs_handle.USERFile, f_name,FA_CREATE_ALWAYS | FA_WRITE | FA_READ);//FA_CREATE_ALWAYS
測試發現檔名只能放八個數字+.bin ex 12121223.bin
我看ff.h中結構
/* File information structure (FILINFO) */
typedef struct {
FSIZE_t fsize; /* File size */
WORD fdate; /* Modified date */
WORD ftime; /* Modified time */
BYTE fattrib; /* File attribute */
#if _USE_LFN != 0
TCHAR altname[13]; /* Alternative file name */
TCHAR fname[_MAX_LFN + 1]; /* Primary file name */
#else
TCHAR fname[13]; /* File name */
#endif
} FILINFO;
fname[13]以為可以放到13個數字, 請問檔名長度是如何計算? 何時一定得用_USE_LFN
感謝
|
|