我在进行CH375通讯编程,本来读文件数据好好的,一加上创建文件或者创建文件夹,编译没有错误,可是原本好好的读文件程序也不能用了,不知为什么,请指教,谢谢
这个应该是你程序上面的问题,你可以将你的程序发过来看下
我的写文件程序是这样的,在优盘根目录下新建TEST开头的TXT文件,如果TEST1.TXT存在,就看TEST2.TXT是否存在,如不存在就新建,存在就依次类推查找,共查找10次,如果都存在就返回。结果加上这段程序后,我其他的读文件程序就错误,请指教。 //禁止看门狗 WDTCR=(1< WDTCR=(0< //查找文件 while(1) // 文件已存在 { if(FileCount==0) sss="/TEST.TXT"; if((FileCount>0)&&(FileCount<10)) { sss="/TEST0.TXT"; sss[5]=FileCount+48; } //if((FileCount>=10)&&(FileCount<100)) // { // sss="/TEST00.TXT"; // sss[5]=FileCount/10+48; // sss[6]=FileCount%10+48; // } //if((FileCount>=100)&&(FileCount<255)) // { // sss="/TEST000.TXT"; // sss[5]=FileCount/100+48; // sss[6]=(FileCount%100)/10+48; // sss[7]=FileCount%10+48; // } //if(FileCount>=255) if(FileCount>=10) { dprintf(0,4*16,"File Create ERROR",0,0) ; init_watchdog();//开放看门狗 return; } strcpy((char *)mCmdParam.Open.mPathName, sss); i=CH375FileOpen(); if((i==ERR_MISS_FILE) || (i==ERR_MISS_DIR)) break; else if(i=ERR_SUCCESS) { FileCount++; i=CH375FileClose(); mDelaymS(20); } }
//创建文件 mDelaymS(20); //sss="/TEST0.TXT"; strcpy((char *)mCmdParam.Create.mPathName, sss); i=CH375FileCreate(); if(i==ERR_SUCCESS)//创建文件成功 { pCodeStr = (UINT8 *)"30 30 30 30 30 30 30 30 30 30 30 0F A0 4E 20 12 55 A0 02 09 06 01 20 FF FF FF FF FF 03 E8 2E EE 00 0D 07 D0 2E E7 00 04 0B B8 2E EB 00 0A 0F A0 2E EA 00 09 13 88 2E EE 00 0D 17 70 2E EE 00 0A CD "; while( 1 ) { // 分多次写入文件数据 for ( i=0; i { c = *pCodeStr; mCmdParam.ByteWrite.mByteBuffer[i] = c; if ( c == 0 ) break; //源字符串结束 pCodeStr++; } if ( i == 0 ) break; /* 源字符串结束,完成写文件 */ mCmdParam.ByteWrite.mByteCount = i; /* 写入数据的字符数,单次读写的长度不能超过MAX_BYTE_IO,第二次调用时接着刚才的向后写 */ i = CH375ByteWrite( ); /* 向文件写入数据 */ mStopIfError( i ); } mCmdParam.Close.mUpdateLen = 1; /* 自动计算文件长度,以字节为单位写文件,建议让程序库关闭文件以便自动更新文件长度 */ i=CH375FileClose(); mStopIfError(i); }
init_watchdog();//开放看门狗 } /******************************************************************************************/ // 安全移除U盘, 返回USB_INT_SUCCESS说明可以安全移除,否则说明不能安全移除,只能强行移除 // 在操作完U盘准备让用户拔出U盘前调用, 防止用户过早拔出U盘丢失数据 UINT8 SafeRemoveDisk( void ) { UINT8 i; for ( i = 0; i < 5; i ++ ) { // 有的U盘总是返回未准备好,不过可以被忽略 mDelaymS( 100 ); if ( CH375DiskReady( ) == ERR_SUCCESS ) break; //查询磁盘是否准备好 } xWriteCH375Cmd( CMD_SET_CONFIG ); //设置USB配置 xWriteCH375Data( 0 ); //取消配置,会导致很多U盘的LED灯灭 xQueryInterrupt( ); /* 查询CH375中断并更新中断状态 */ mDelaymS( 10 ); if ( i < 5 && CH375IntStatus == USB_INT_SUCCESS ) return( USB_INT_SUCCESS ); //操作成功 else return( 0xFF ); }