我使用ch376模块可以写u盘,改写文件名,但不知为何不能修改文件日期,通过设置断点查看,也执行了改写日期程序,但文件日期始终没有改变,一直为2004-1-1 0:00,应该如何解决,请大家帮忙,谢谢!(u盘程序基本都是官网提供的例程修改)
我们提供的例程是修改创建日期,文件修改日期的话需要稍微改动一下。
谢谢!修改创建日期和文件修改日期的区别是什么,我的目的是文件名不变,但文件的日期根据我的需要来改变,(实时时钟),这样的话应该改动哪个文件和语句.谢谢!
这两个在文件目录项中的位置不一样,只需要把变量变一下。 UINT16 DIR_CrtTime; /* 0EH,文件创建的时间 */ UINT16 DIR_CrtDate; /* 10H,文件创建的日期 */ UINT16 DIR_WrtTime; /* 16H,文件修改时间,参考前面的宏MAKE_FILE_TIME */ UINT16 DIR_WrtDate; /* 18H,文件修改日期,参考前面的宏MAKE_FILE_DATE */
谢谢!我试试.
我把函数CH376WriteOfsBlock( buf, STRUCT_OFFSET( FAT_DIR_INFO, DIR_CrtTime), 2 );里面DIR_CrtTime,和DIR_CrtDate分别用DIR_WrtTime,DIR_WrtDate替代,应该就可以吧.但我运行以后,没有文件修改时间了,通过设置断点查看,发现有时可以进入修改文件时间程序,有时不能进入,但不管是否进入都不再显示文件修改时间,是否是我的时间,日期写入格式不对造成的.请大家给予帮助,谢谢!
嗯,只需要改那两个变量,调用的话参考: s = SetFileCreateTime( "/CH376HFT.TXT", MAKE_FILE_DATE( 2004, 6, 8 ), MAKE_FILE_TIME( 15, 39, 20 ) );就可以了。
我又观察了几次,发现如果程序能够进入修改文件时间程序,u盘所建的文件就没有文件修改时间了,如果没有进入修改文件时间程序,u盘所建文件的文件修改时间仍是2004-1-1 0:00.
能否每次进入修改文件时间程序,和u盘是否读写稳定有关,如果我在CS和SCK上挂上示波器探头,并打开示波器电源,u盘读写就非常稳定,每次都可进入修改文件时间程序,但u盘所建的文件没有文件修改时间.如果不打开示波器电源,u盘读写就不稳定,常常不能进入修改文件时间程序,这时u盘所建文件的文件修改时间仍是2004-1-1 0:00.
你现在先确保U盘稳定工作,看看什么原因导致不接探头就不稳定?跟USB供电是否有关?
文件修改时间可以改变了,按照您们的提示,直接使用s = SetFileCreateTime()函数就可以了.
USB供电电压为4.98v,u盘工作不稳定我想换个模块试试,我已新买了模块下周到货,看是否还有类似情况
新模块工作正常,跟示波器探头没有关系.