[求助]CH375寫文件, 總是部份數(shù)據(jù)丟...找不到原因

從NANDFLASH讀數(shù)據(jù)寫到U盤上, 總會(huì)有一些數(shù)據(jù)沒寫進(jìn)文件里 看看我這段代碼有沒問題

UINT32 i; UINT32 PageAddr; unsigned char pBuf0[528] = {0};

PageAddr=0; i = CH375FileCreate( ); mStopIfError(i); while( PageAddr < 32768 ) { //共32768頁 P10OUT ^= BIT5; PageRead(0, PageAddr, pBuf0); //從NANDFLASH讀一頁數(shù)據(jù), 一頁有528字節(jié) delay_us(50); PageAddr+=1; i = 0; for(n=0;n<528;n++) { //serial_put_char(pBuf0[n]); mCmdParam.ByteWrite.mByteBuffer[i] = pBuf0[n]; i+=1; if (i == 24) //一次寫入24個(gè)字節(jié), 528/24=22次 { mCmdParam.ByteWrite.mByteCount = (UINT8)i; i = 0; CH375ByteWrite( ); // 向文件寫入數(shù)據(jù) P10OUT ^= BIT6; } } }

會(huì)丟失哪一部分?jǐn)?shù)據(jù)? 文件長(zhǎng)度是否更新正確? 描述一下丟失的詳細(xì)的情況。


丟失情況很奇怪, 文件長(zhǎng)度正常, 但寫入的內(nèi)容卻變成了FF...

專門跟蹤調(diào)試 從FLASH讀取的PageRead函數(shù), 從FLASH讀到正確的數(shù)據(jù)是正確, 所以懷疑寫入文件的函數(shù),

單片機(jī)用的是 MSP430F5438, 庫文件用的是MSP430\FILELIBF_L41

發(fā)現(xiàn)更改MAX_PATH_LEN的大小無效,

例如我更改為529長(zhǎng)度, MAX_BYTE_IO自然更改了 if ( TotalCount > MAX_BYTE_IO ) c = MAX_BYTE_IO; sizeof( mCmdParam.ByteRead.mByteBuffer ) else c = TotalCount; mCmdParam.ByteRead.mByteCount = c; //執(zhí)行到這步賦值后, mByteCount 就變成了0x10. 嘗試將變量類型改為UINT32, 無效. i = CH375ByteRead( ); 或者M(jìn)AX_PATH_LEN更改為265,跑過了這讀取的函數(shù)之后 mByteCount 會(huì)變成數(shù)據(jù)類型的最大值.


MAX_BYTE_IO是8位的,不可以這樣更改。這樣會(huì)丟失數(shù)據(jù)的。后續(xù)數(shù)據(jù)肯定是寫不進(jìn)去的


數(shù)據(jù)類型太小了, 想改大點(diǎn)都不行, 這樣讀寫次數(shù)就多了, 這MAX_Byte_IO最大不外乎255節(jié)節(jié)

現(xiàn)在一次不敢寫太多, 也就寫24個(gè)字節(jié), 單片機(jī)跑了幾個(gè)小時(shí), 才把一個(gè)16MByte文件操作完. 把中間的讀寫操作過程注釋掉, 就這樣跑都1小時(shí)左右...


你可以改用扇區(qū)模式讀寫。這樣速度比較快。


請(qǐng)問樓上的大哥,我有一些關(guān)于扇區(qū)模式讀寫的問題,不知能不能請(qǐng)教您! 是關(guān)于xdata和ch375hf6.h的問題,可以的話請(qǐng)給我一個(gè)QQ什么的。謝謝


你可以發(fā)郵件或者打電話給我。我都會(huì)技術(shù)給你回復(fù)的。


郵件我已經(jīng)發(fā)給您了! 請(qǐng)幫我看看,這問題我都頭痛近半個(gè)月了! 謝謝!


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

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