通过之前的对拷程序完成的是将U盘A中的文件12拷贝到U盘B中并重新命名345. 现在需要先实现全部文件的对拷,然后再加入控制进行选择性的拷贝。
我把对拷中的程序作了点修改,然后报错,求解
加了两个变量UINT8 code *pCodeStr,*qCodeStr;
pCodeStr = "\\*"; while(1) { Change_Bit=0x01; mCmdParam.SaveVariable.mSaveVariable=0; //为0时恢复变量,为1时保存变量 mCmdParam.SaveVariable.mBuffer=copy_mCmdParam; //指向要保存的缓冲区 //mCopy_Data_To_Data(DISK_BASE_BUF,copy_buf,0x200); CH375SaveVariable(); CH375DirtyBuffer(); printf("Open\n");
// if ((w=key())==1) // { for (c=0;c<8;c++) { i=mCopyCodeStringToXRAM(mCmdParam.Open.mPathName,pCodeStr); /* 文件名,该文件在根目录下 */ mCmdParam.Open.mPathName[i]= c; i=CH375FileOpen(); /* 打开文件 */ if (i==ERR_MISS_FILE) break; /* 再也搜索不到匹配的文件,已经没有匹配的文件名 */ if (i==ERR_FOUND_NAME) // if (i==ERR_SUCCESS) /* 文件存在并且已经被打开,移动文件指针到尾部以便添加数据 */ {
printf( " match file %03d#: %s\n", (unsigned int)c, mCmdParam.Open.mPathName ); LcmClearTXT(); sendIN(0x80); for(i=0;mCmdParam.Open.mPathName[i]!='\0';i++) { sendDA(mCmdParam.Open.mPathName[i+1]); } delay(1500);
mCmdParam.SaveVariable.mSaveVariable=1; //为0时恢复变量,为1时保存变量 mCmdParam.SaveVariable.mBuffer=copy_mCmdParam; //指向要保存的缓冲区 // mCopy_Data_To_Data(copy_buf,DISK_BASE_BUF,512); CH375SaveVariable(); NewSize=CH375vFileSize; TotalLen=(CH375vFileSize+511)>>9; strcpy(qCodeStr,mCmdParam.Open.mPathName); // continue; } else { /* 出错 */ mStopIfError( i ); break; } 这是改的部分程序,下载后串口显示 Ready ? Ready1 ? Open match file 000#: \CH375.C Error:1F
意思就是循环只跑显示一个文件就停了。而且既然有了match file 000#: \CH375.C这一句 那紧接着的液晶显示语句好像也没有跑。 求解啊 [Emot]1[/Emot]