ch375读u盘问题

我用lpc2214控制ch375读u盘,搜索并打开文件,然后读文件到mbuffer,程序如下: for(c=0;c<255;c++) { sercpy((char *)mCmdParam.Enumer.mPathName,“/*”); for(i=0;mCmdParam.Enumer.mPathName[i]!=0;i++) mCmdParam.Enumer.mPathName[i]=c; i=CH375FileEnumer(); if(i==ERR_MISS_FILE)break; if(i==ERR_SUCCESS) { sercpy((char *)mCmdParam.Open.mPathName,(char *) mCmdParam.Enumer.mPathName); i=CH375FileOpen(); if(i==ERR_MISS_DIR|i==ERR_MISS_FILE)break; mCmdParam.ByteRead.mByteCount=32; while(mCmdParam.ByteRead.mByteCount=32; ) i=CH375ByteRead(); if(i!=ERR_SUCCESS) if(mCmdParam.ByteRead.mByteCount<32) { mCmdParam.ByteRead.mByteCount=(32-mCmdParam.ByteRead.mByteCount); CH375ByteRead(); } .......................... /*此省略将读出的数据块传送出去的程序,每次传32字节*/ .......................... } }

麻烦帮我看看这个程序问题在哪,我运行到i=CH375ByteRead();这一步时i值为0xb4(文件已关闭),这是为什么呢?

您这个函数估计运行不到i=CH375ByteRead();这一步,C中好像没有这个函数sercpy; sercpy((char *)mCmdParam.Enumer.mPathName,“/*”); for(i=0;mCmdParam.Enumer.mPathName!=0;i++) mCmdParam.Enumer.mPathName=c; 上面的语句是实现不了您的功能的;还有 “while(mCmdParam.ByteRead.mByteCount=32;”这条语句对么?! mCmdParam.ByteRead.mByteCount=32;字节写单次不能超过30个 建议您把375手册和CH375HF.PDF好好看看,并仔细检查程序语法


额,我这上网机和工作机是分开的,程序不能复制粘贴,一着急手打出错了, sercpy为strcpy sercpy((char *)mCmdParam.Enumer.mPathName,“/*”); for(i=0;mCmdParam.Enumer.mPathName!=0;i++) mCmdParam.Enumer.mPathName=c; 为 strcpy((char *)mCmdParam.Enumer.mPathName,“/*”); for(i=0;mCmdParam.Enumer.mPathName[i]!=0;i++) mCmdParam.Enumer.mPathName[i]=c; 程序修改如下: for(c=0;c<255;c++) { strcpy((char *)mCmdParam.Enumer.mPathName,“/*”); for(i=0;mCmdParam.Enumer.mPathName!=0;i++) mCmdParam.Enumer.mPathName[i]=c; i=CH375FileEnumer(); if(i==ERR_MISS_FILE)break; if(i==ERR_SUCCESS) { sercpy((char *)mCmdParam.Open.mPathName,(char *)mCmdParam.Enumer.mPathName); i=CH375FileOpen(); if(i==ERR_MISS_DIR|i==ERR_MISS_FILE)break; mCmdParam.ByteRead.mByteCount=32; while(mCmdParam.ByteRead.mByteCount=32){ i=CH375ByteRead(); if(i!=ERR_SUCCESS) if(mCmdParam.ByteRead.mByteCount<32) { mCmdParam.ByteRead.mByteCount=(32-mCmdParam.ByteRead.mByteCount); CH375ByteRead(); } .......................... /*此省略将读出的数据块传送出去的程序,每次传32字节*/ .......................... } }

另外,字节写单次不能超过30个我倒真是没注意,谢谢提醒。


我晕,我明明写的是数组,可是怎么不显示呢。。。 最上面几句就是你们实例程序中提供的那个枚举文件的例子。。。


人捏。。。求解脱。。。


文件可能没有打开,你尝试下打开一个已有确定的文件,然后进行读操作


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