UINT8 CH376ByteRead( PUINT8 buf, UINT16 ReqCount, PUINT16 RealCount ) 這個(gè)函數(shù)是從buf中讀數(shù)據(jù)還是把數(shù)據(jù)讀到buf中啊。。。函數(shù)體沒(méi)有改完全是例程中的函數(shù)
是將U盤(pán)的數(shù)據(jù)讀取到buf里面去。
謝謝。。。我重新讀了下函數(shù)。。。這個(gè)論壇的工程師真好。。。。
再問(wèn)一個(gè)問(wèn)題,我把buffer中的數(shù)據(jù)寫(xiě)入新建的TXT中為什么會(huì)把buffer中的數(shù)據(jù)重復(fù)寫(xiě)多次啊?是ThisLen設(shè)定的不對(duì)嗎?下面是我寫(xiě)函數(shù) /***************************************************************************** *函數(shù)名:WriteFile *描述:向新建的TXT中寫(xiě)入一組數(shù)據(jù) ******************************************************************************/ uchar WriteFile(uchar *TarFileName,uchar *buf, UINT16 ThisLen) { uchar status1; uchar TarName; UINT32 FileSize,ByteCount=0; UINT32 TarUpDirClust; do { if(ByteCount==0) { TarName=CH376SeparatePath(TarFileName); if(TarName) { status1=CH376FileOpenDir(TarFileName,TarName); if(status1!=ERR_OPEN_DIR) { if(status1==USB_INT_SUCCESS) return ERR_MISS_FILE; else if(status1==ERR_MISS_FILE) return ERR_MISS_DIR; else return status1; } TarUpDirClust=CH376ReadVar32(VAR_START_CLUSTER); } else { TarUpDirClust=0; } status1=CH376FileCreate(&TarFileName[TarName]); if(status1!=USB_INT_SUCCESS) return status1; } else { CH376WriteVar32( VAR_START_CLUSTER, TarUpDirClust ); status1=CH376FileOpen(&TarFileName[TarName]); if(status1!=USB_INT_SUCCESS) return status1; status1=CH376ByteLocate(ByteCount); if(status1!=USB_INT_SUCCESS) return status1; } status1=CH376ByteWrite(buf,ThisLen,NULL);/* 以字節(jié)為單位向當(dāng)前位置寫(xiě)入數(shù)據(jù)塊,除非沒(méi)有磁盤(pán)空間,否則返回實(shí)際長(zhǎng)度總是與ThisLen相等 */ if(status1!=USB_INT_SUCCESS) return status1; status1=CH376FileClose(TRUE);/*關(guān)閉文件,對(duì)于字節(jié)讀寫(xiě)建議自動(dòng)更新文件長(zhǎng)度 */ if(status1!=USB_INT_SUCCESS) return status1; ByteCount += ThisLen; if(ThisLen < sizeof(buf)) { if(ByteCount!=FileSize) /* 實(shí)際讀出字節(jié)數(shù)小于請(qǐng)求讀出字節(jié)數(shù),說(shuō)明原文件結(jié)束 */ break; } }while(ByteCount return (USB_INT_SUCCESS); }