可以读盘了,但是无法写盘,急急急
用ch375U盘读写模块读U盘调通了,可是还不能写。FileCreate和FileWrite命令执行后返回的状态码都对,但是用PC接U盘一看,就是没有创建的文件,这是怎么回事呢?我把写U盘程序贴上来,大家帮我看看哪里不对好么?
send_char(0xF8);
//send_char("CREATE");
memcpy(mCmdParam.Create.mPathName,"NEW.TXT",MAX_PATH_LEN);
i = ExecCommand(CMD_FileCreate,MAX_PATH_LEN);
mStopIfError( i );
send_char(i);

send_char(0xF9);
//send_char("WRITE");
mCmdParam.Write.mSectorCount = 0x1;
i = ExecCommandBuf(CMD_FileWrite, 1, &DATA_BUF);
mStopIfError( i );
send_char(i);
if(SecCount>1)
{
mCmdParam.Write.mSectorCount = SecCount - 1;
send_char(0xFF);
i = ExecCommandBuf(CMD_FileWrite, 1, &DATA_BUF+512);
mStopIfError(i);
send_char(i);
}
mCmdParam.Modify.mFileAttr = 0xff;
mCmdParam.Modify.mFileTime = 0xffff;
mCmdParam.Modify.mFileDate = ( (2005-1980)<<9 ) + ( 7<<5 ) + 05;
mCmdParam.Modify.mFileSize = NewSize;
send_char(0xf1);
i = ExecCommand( CMD_FileModify, 4+2+2+1 );
mStopIfError( i );
send_char(i);
printf( "Close\n" );
mCmdParam.Close.mUpdateLen = 0;
i = ExecCommand( CMD_FileClose, 1 );
mStopIfError( i );

其中可以在filecreate和filewrite命令后返回的状态码都对, 但是U盘里就是没有文件。
以下是调试时用串口发出的字符:F8 00 F9 00 FF 00 F1 00

你有没有更新文件长度啊.

晕,i = ExecCommand( CMD_FileModify, 4+2+2+1 ); 不就是更新文件长度么?

memcpy(mCmdParam.Create.mPathName,"NEW.TXT",MAX_PATH_LEN);
应该是memcpy(mCmdParam.Create.mPathName,"/NEW.TXT",MAX_PATH_LEN);

九寸钉,上面的错误我已经发现了,不过还是不行
后来发现是modify时候文件长度的问题。 对了,今天你当班阿
和我通话的那个帅哥是你么,呵呵

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