UFX+U_DISK\EXAM1讀U盤出錯(cuò)

U盤數(shù)據(jù):

*S*

00000000000

11111111111

22222222222

33333333333

44444444444

55555555555

66666666666

77777777777

88888888888

99999999999

AAAAAAAAA

BBBBBBBBBB

CCCCCCCCC

DDDDDDDD

EEEEEEEEEEE

FFFFFFFFFFF

*E*

用例程U_DISK\EXAM1 + UFX庫讀取,每次64個(gè)字節(jié),第一次和第二次正確,第三次數(shù)據(jù)錯(cuò)誤,為何?

第一次:

Read Bytes Amount: 64

*S*

00000000000

11111111111

22222222222

33333333333

4444444

第二次:

4444

55555555555

66666666666

77777777777

88888888888

999999

第三次:

USBC9

ADDDDDDDD

EEEEEEEEEEE


UINT8 USBGetData(PUINT8 buf)

{

? ? UINT8 s, i, k, len;? //每次讀n個(gè)字節(jié)

? ? UINT8 TotalCount = fieldlen;

? ? memset(buf, 0, sizeof(buf));

k = 0;

? ? printf("Read Bytes Amount: %02d\n", (UINT16)TotalCount);

? ? while(TotalCount)? ? ? ? ? ? ? ? ? ? ? ?//如果文件比較大,一次讀不完,可以再調(diào)用CH559ByteRead繼續(xù)讀取,文件指針自動(dòng)向后移動(dòng)

? ? {

? ? ? ? if(TotalCount > (MAX_PATH_LEN - 1))

? ? ? ? {

? ? ? ? ? ? len = MAX_PATH_LEN - 1;? ? ? ? ? ?//剩余數(shù)據(jù)較多,限制單次讀寫的長度不能超過 sizeof( mCmdParam.Other.mBuffer )

? ? ? ? }

? ? ? ? else

? ? ? ? {

? ? ? ? ? ? len = TotalCount;? ? ? ? ? ? ? ? ?//最后剩余的字節(jié)數(shù)

? ? ? ? }

? ? ? ? mCmdParam.ByteRead.mByteCount = len;? //請(qǐng)求讀出幾十字節(jié)數(shù)據(jù)

? ? ? ? mCmdParam.ByteRead.mByteBuffer = &buf[k];

? ? ? ? s = CH559ByteRead();? ?? //以字節(jié)為單位讀取數(shù)據(jù)塊,單次讀寫的長度不能超過MAX_BYTE_IO,第二次調(diào)用時(shí)接著剛才的向后讀

? ? ? ? TotalCount -= mCmdParam.ByteRead.mByteCount;? ? ? //計(jì)數(shù),減去當(dāng)前實(shí)際已經(jīng)讀出的字符數(shù)

? ? ? ? for(i = 0; i != mCmdParam.ByteRead.mByteCount; i++)

? ? ? ? {

? ? ? ? ? ? printf("%C", mCmdParam.ByteRead.mByteBuffer[i]);? //顯示讀出的字符

? ? ? ? }

? ? ? ? if(mCmdParam.ByteRead.mByteCount < len)? ?//實(shí)際讀出的字符數(shù)少于要求讀出的字符數(shù),說明已經(jīng)到文件的結(jié)尾

? ? ? ? {

? ? ? ? ? ? printf("\n文件已經(jīng)結(jié)束\n");

? ? ? ? ? ? break;

? ? ? ? }

k += len;

? ? }

? ? printf("\nVerify: ");

? ? printf(buf);

? ? return TotalCount;

}

為何?




熱門產(chǎn)品 : USB3.0 HUB控制器:CH634

就是連續(xù)調(diào)用三次這個(gè)函數(shù),然后第三次數(shù)據(jù)讀出來是錯(cuò)誤的,不知道原因在哪里?請(qǐng)教。。。


可以參考這個(gè)帖子中的說明

http://www.findthetime.net/bbs/thread-87440-1.html


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

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