我用CH375B讀文件返回文件長度不對,讀小文件正常,讀一個1.71M的文件,文件名是10000w.jc5,返回的CH375vFileSize只有0X7777,請教是哪里的問題? i = CH375FileOpen( ); /* 打開文件 */ df=(UINT16)(CH375vFileSize); dg=(UINT16)(CH375vSectorSize);
df返回0X7777,實(shí)際文件長度是1.71M,不知哪里有錯?謝謝
我用CH375B讀文件返回文件長度不對,讀小文件正常,讀一個1.71M的文件,文件名是10000w.jc5,返回的CH375vFileSize只有0X7777,請教是哪里的問題? i = CH375FileOpen( ); /* 打開文件 */ df=(UINT16)(CH375vFileSize); dg=(UINT16)(CH375vSectorSize);
df返回0X7777,實(shí)際文件長度是1.71M,不知哪里有錯?謝謝
首先您的文件名不對,文件名需要全部大寫。你可以這樣做下試驗(yàn)。比如你用PC建個文件,往文件寫入一些數(shù)據(jù),數(shù)據(jù)長度從1--1024字節(jié),看能不能讀出文件的長度
不行。我把文件名改為大寫的,讀出的CH375vFileSize還是0X7777。 我讀幾K的文件返回的CH375vFileSize是對的。讀大的文件才出錯,是不是讀的文件有什么限制?
問下你用的什么單片機(jī)?你需要確定打開文件成功之后在判斷CH375vFileSize和CH375vSectorSize這2個變量。2個變量一個是LONG型變量,一個是SHORT型變量。
單片機(jī)用的STM32的ARM103ZET6。 i = CH375FileOpen( ); i返回的是0,應(yīng)該是成功。 UINT32 df; UINT16 dg; df=(UINT16)(CH375vFileSize); dg=(UINT16)(CH375vSectorSize); df返回的還是0x7777. 還有別的原因嗎?謝謝
你監(jiān)測下文件在多大時你的容量就開始讀錯?! 你把CH375vFileSize放在“字”對齊的地址上去試試
不好意思,CH375vFileSize是庫里面的變量,應(yīng)該在字對齊的地址上,你可以看下MAP文件看是不是在以字對齊的地址上
應(yīng)該是長度在65535以內(nèi)的都讀的對,而長度超過的都讀錯了。就是大于16位的高位都沒讀出來。我那個錯的文件長度是1800055個字節(jié),換算成16進(jìn)制是1B7777,返回了0x00007777,我定義的變量長度應(yīng)該沒問題,不知怎么回事? UINT32 df; UINT16 dg; i = CH375FileOpen( ); df=(UINT16)(CH375vFileSize); dg=(UINT16)(CH375vSectorSize);
另外“你把CH375vFileSize放在“字”對齊的地址上去試試”,這句話怎么理解,能給個定義或提示嗎? 謝謝
按照df=(UINT16)(CH375vFileSize);你認(rèn)為取出這個值是16位還是32位? 應(yīng)該這樣修改看下:df=(UINT32)(CH375vFileSize); 還有需要看下你的監(jiān)控手段是什么?仿真器還是串口跟蹤?