程序问题

在/* U盘文件读写模块, 连接方式: 并口+查询 */程序中 有下面这句被注释掉了 // DATA_BUF=CurrentBuf;为什么 去掉注释后,出现以下错误 USB.C(149): error C213: left side of asn-op not an lvalue 为什么啊?谢谢了.

具体什么地方? for(i=0;i<64;i++) { DATA_BUF[i]=CurrentBuf; CurrentBuf++; } 这样写试试看


并口+查询 的例子程序好象没看到有注释掉的这句。 你在网上下载的例子程序只要你的硬件上满足要求,程序是不需要修改就能跑的,这些例子是经过验证的。


else /* 找到文件\C51\CH375HFT.C或者出错 */ { mStopIfError( i ); printf( "Query\n" ); i = ExecCommand( CMD_FileQuery, 0 ); /* 查询当前文件的信息,没有输入参数 */ mStopIfError( i ); printf( "Read\n" ); OldSize = mCmdParam.Modify.mFileSize; /* 原文件的长度 */ if ( OldSize > (unsigned long)(64*512) ) /* 演示板用的62256只有32K字节 */ { SecCount = 64; NewSize = 64*512; /* 由于RAM有限所以限制长度 */ } else /* 如果原文件较小,那么使用原长度 */ { SecCount = ( OldSize + 511 ) >> 9; /* (OldSize+511)/512, 计算文件的扇区数,因为读写是以扇区为单位的 */ NewSize = (unsigned short)OldSize; /* 原长度 */ } printf( "Size=%ld, Len=%d, Sec=%d\n", OldSize, NewSize, (unsigned short)SecCount ); mCmdParam.Read.mSectorCount = SecCount; /* 读取全部数据,如果超过60个扇区则只读取60个扇区 */ i = ExecCommandBuf( CMD_FileRead, 1, &DATA_BUF ); /* 从文件读取数据 */ mStopIfError( i );

i = ExecCommand( CMD_FileReadLast, 1 ); mStopIfError( i ); 我在这里加ExecCommand( CMD_FileReadLast, 1 );有错吗?为什么不行?全乱码? 是不应该指定ileReadLast的入口地址啊?比如ExecCommandBuf( CMD_FileReadLast, 1,一个地址 );


如果要读取文件最后不足一个扇区的数据得将 ExecCommand( CMD_FileReadLast, 1 ); 改为:ExecCommandBuf( CMD_FileReadLast, 0, &DATA_BUF );


哦,看到了,真是太感谢你们了!!!!!!!!!


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