[求助]关于376从U盘读取数据!加急!

UINT8 CH376ByteRead( PUINT8 buf, UINT16 ReqCount, PUINT16 RealCount ) 这个函数是从buf中读数据还是把数据读到buf中啊。。。函数体没有改完全是例程中的函数

是将U盘的数据读取到buf里面去。


谢谢。。。我重新读了下函数。。。这个论坛的工程师真好。。。。


再问一个问题,我把buffer中的数据写入新建的TXT中为什么会把buffer中的数据重复写多次啊?是ThisLen设定的不对吗?下面是我写函数 /***************************************************************************** *函数名:WriteFile *描述:向新建的TXT中写入一组数据 ******************************************************************************/ 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);/* 以字节为单位向当前位置写入数据块,除非没有磁盘空间,否则返回实际长度总是与ThisLen相等 */ if(status1!=USB_INT_SUCCESS) return status1; status1=CH376FileClose(TRUE);/*关闭文件,对于字节读写建议自动更新文件长度 */ if(status1!=USB_INT_SUCCESS) return status1; ByteCount += ThisLen; if(ThisLen < sizeof(buf)) { if(ByteCount!=FileSize) /* 实际读出字节数小于请求读出字节数,说明原文件结束 */ break; } }while(ByteCount return (USB_INT_SUCCESS); }


只有登录才能回复,可以选择微信账号登录