关于U盘模块的文件的写操作!
我用的是你们的标准的三线串口版:现在我想在建立文件后在这个文件的最前面空500个字节,从500个字节后开始写入数据,,最后我要把其它的东西存在前面的500个字节中,这样可行吗?
strcpy( mCmdParam.Create.mPathName, "\\DATA.TXT" );
i = ExecCommand( CMD_FileCreate, MAX_PATH_LEN );
mStopIfError( i );
mCmdParam.ByteLocate.mByteOffset = 500;
ExecCommand( CMD_ByteLocate, 4 ); /* 以字节为单位移动文件指针 */
mCmdParam.ByteWrite.mByteCount = 0; /* 指定写入0字节,用于刷新文件的长度
ExecCommand( CMD_ByteWrite, 1 ); /* 以字节为单位向文件写入数据,因为是0字节写入,
memcpy( mCmdParam.ByteWrite.mByteBuffer, aa, 2*Data ); /* 复制准备写入的数据到参数结构中,源数据可以来自ADC等,本例是来自程序空间的说明信息 */
mCmdParam.ByteWrite.mByteCount =2*Data; /* 指定本次写入的字节数 */
i = ExecCommand( CMD_ByteWrite, 1+2*Data ); /* 以字节为单位向文件写入数据 */
mStopIfError( i );
mCmdParam.Close.mUpdateLen = 1; /* 自动计算文件长度,当以字节为单位向文件写入数据后,如果没有用0长度的CMD_ByteWrite更新文件长度,那么可以在关闭文件时让模块自动更新文件长度 */
i = ExecCommand( CMD_FileClose, 1 ); /* 关闭文件,当以字节为单位向文件写入(追加)数据后,必须在用完文件后关闭文件 */
mStopIfError( i );
这样可以吗??
这人很懒,什么都没留下
热门产品推荐 : CH342: USB转双串口芯片
你先扇区写512,然后LOCATE到500,然后再字节写数据
no excuse!
只有登录才能回复,可以选择微信账号登录