[求助]單片機系統(tǒng)讀寫U盤,寫文件時定位文件的寫位置,文件的建立時間。

我用atmega64讀寫U盤,采用的CH375B,用的貴公司提供的庫函數(shù) 【問題1】我現(xiàn)在采用的字節(jié)方式寫文本文件,在U盤上寫一個文本文件,我想更新其中一部分文件,現(xiàn)在采用的辦法是 mCmdParam.ByteLocate.mByteOffset = CH375vFileSize-14; CH375ByteLocate( ); mCmdParam.ByteWrite.mByteCount = 14; for(i=0;i<12;i++) { mCmdParam.ByteWrite.mByteBuffer[i] = temp[i]; } mCmdParam.ByteWrite.mByteBuffer[12]=0x0D; mCmdParam.ByteWrite.mByteBuffer[13]=0x0A;

CH375ByteWrite( ); filesize=CH375vFileSize; i = CH375FileClose( ); mStopIfError( i ); 例如,有一個文件是080203112210 080203112210,想把后半段更新一下,改成080203112210 090305081123 通過上面的方法實現(xiàn)不了,更新不了文件,請問怎樣才能實現(xiàn)呢? 【問題2】另外,如果想獲得當(dāng)前文件的創(chuàng)建時間,則怎么實現(xiàn)呢?我現(xiàn)在采用CH375FileModify()函數(shù),不改變?nèi)魏螀?shù),mCmdParam.Modify.mFileTime,mCmdParam.Modify.mFileDate中的到的時間不對啊 mCmdParam.Modify.mFileAttr = 0xff; mCmdParam.Modify.mFileTime = 0xffff; mCmdParam.Modify.mFileDate = 0xffff; mCmdParam.Modify.mFileSize = 0xffffffff; i = CH375FileModify( ); mStopIfError( i ); //獲取文件創(chuàng)建日期和時間 temptime.year=(UINT8)((mCmdParam.Modify.mFileDate>>9)&0x007F+80);//文件創(chuàng)建時間年 temptime.month=(mCmdParam.Modify.mFileDate>>5)&0x000F;//月 temptime.day=mCmdParam.Modify.mFileDate&0x001F;//日 temptime.hour=mCmdParam.Modify.mFileTime>>11;//時 temptime.minute=(mCmdParam.Modify.mFileTime>>5)&0x003F;//分 temptime.second=(mCmdParam.Modify.mFileTime&0x001F)<<1; //秒 【問題3】計算U盤剩余容量溢出 i = CH375DiskQuery( ); mStopIfError( i ); return((unsigned int)((mCmdParam.DiskSize.mDiskSizeSec * (mCmdParam.Query.mFreeSector>>9))>>11)); 我的U盤是1G的,計算剩余容量,返回值為8890,溢出了,我用了很多方法都溢出了。 用同樣的方法計算U盤的總大小去沒有問題(CH375DiskSize( ))。

我用的是ICCAVR。

1,首先你要確定mCmdParam.ByteLocate.mByteOffset的值是多少?按照你的計算,這里的值應(yīng)該是14,你看下這個值正確不正確。這里應(yīng)該這樣復(fù)制mCmdParam.ByteWrite.mByteBuffer [ i ]= temp。 同時在關(guān)閉文件的時候直接自動關(guān)閉文件就可以了即: mCmdParam.Close.mUpdateLen = 1; i = CH375FileClose( ); 2,查詢修改時間的話,你可以使用這個函數(shù): CH375FileQuery( ); /* 查詢當(dāng)前文件的信息 */ 查詢當(dāng)前已打開文件的屬性、日期、時間、長度等信息。返回時 mCmdParam.Modify.mFileSize 中是文件的長度,以字節(jié)為單位,長度可以是0 mCmdParam.Modify.mFileDate 中是文件修改時間,格式參考CH375HF?.H 中的說明 mCmdParam.Modify.mFileTime 中是文件修改時間,格式參考CH375HF?.H 中的說明 mCmdParam.Modify.mFileAttr 中是文件屬性,例如數(shù)值01H 說明該文件是只讀文件 3,你可以看下mCmdParam.Query.mFreeSector值是多少。然后計算的話,應(yīng)該是: mCmdParam.Query.mFreeSector*mCmdParam.DiskSize.mDiskSizeSec/1024/1024就可以了


但是文件的文件的創(chuàng)建日期怎么才能獲得呢?


我們的庫在創(chuàng)建文件的時候就沒有創(chuàng)建日期的,只有修改日期


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频