WCH沁恒单片机
直播中

h1654155275.5661

7年用户 975经验值
私信 关注
[问答]

CH376S为指定文件设置创建日期和时间不成功,调用函数返回14是什么原因?

/* 为指定文件设置创建日期和时间 */
/* 输入参数:   原始文件名在iFileName中, 新的创建日期和时间: iCreateDate, iCreatetime */
/* 返回状态码: USB_INT_SUCCESS = 设置成功,
               其它状态码参考CH376INC.H */
UINT8SetFileCreateTime( PUINT8 iFileName, UINT16 iCreateDate, UINT16 iCreateTime )
{
UINT8s;
s = CH376FileOpen( iFileName );  /* 打开文件 */
mStopIfError( s );
if ( s == USB_INT_SUCCESS )
{
/* 文件读写操作等... */
s = CH376DirInfoRead( );  /* 读取当前文件的目录信息FAT_DIR_INFO,将相关数据调到内存中 */
mStopIfError( s );
if ( s == USB_INT_SUCCESS )
{
buf[0] = (UINT8)iCreateTime;  /* 文件创建的时间,低8位在前 */
buf[1] = (UINT8)(iCreateTime>>8);  /* 文件创建的时间,高8位在后 */
CH376WriteOfsBlock( buf, STRUCT_OFFSET( FAT_DIR_INFO, DIR_CrtTime ), 2 );  /* 向内部缓冲区偏移地址DIR_CrtTime写入2个字节 */
buf[0] = (UINT8)iCreateDate;  /* 文件创建的日期,低8位在前 */
buf[1] = (UINT8)(iCreateDate>>8);  /* 文件创建的日期,高8位在后 */
CH376WriteOfsBlock( buf, STRUCT_OFFSET( FAT_DIR_INFO, DIR_CrtDate ), 2 );  /* 向内部缓冲区偏移地址DIR_CrtDate写入2个字节 */
s = CH376DirInfoSave( );  /* 保存文件的目录信息 */
if ( s == USB_INT_SUCCESS )
{  /* 成功修改并保存 */
/* 文件读写操作等... */
}
mStopIfError( s );
}
CH376FileClose( FALSE );  /* 关闭文件 */
}
return( s );
}




s=SetFileCreateTime("/TEST.TXT", MAKE_FILE_DATE( 2022,7, 24 ), MAKE_FILE_TIME( 20, 13, 30));
大家好,调用这个函数修改时间,最后return是ox14,文件日期还是2004.1.1,请问有可能是什么原因?

  我是按照EXAM11进行的,能修改文件名,就是日期修改不了,文件内容也能正常读写,请问大家可能是什么原因?
  
  

回帖(1)

李星童

2022-9-27 09:46:21
您好,0x14的返回值表示文件已经打开,您可以判断一下,您是不是之前对这个文件操作后,没有File_close,导致调用修改的创建时间的函数的时候,返回了这个错误。
举报

更多回帖

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