[求助]376打开根目录下文件,返回状态0x42

void CH376FileOpen( void ) /* 在根目录或者当前目录下打开文件或者目录(文件夹) */ { unsigned char res = 0; unsigned char i,j; mDelaymS( 200 ); Nop(); i = 0; CH376WriteCmd( CMD10_SET_FILE_NAME );// 0x2F /* 设置文件名 */ CH376WriteData(FileName[0]); while ( FileName[i] ) { i++; Nop(); Nop(); if ( FileName[i] == DEF_SEPAR_CHAR1 || FileName[i] == DEF_SEPAR_CHAR2 ) FileName[i] = 0; /* 强行将文件名截止 */ Nop(); CH376WriteData( FileName[i] ); } Nop(); /* 延迟 */ Nop(); CH376WriteCmd( CMD50_WRITE_VAR32 ); CH376WriteData( VAR_CURRENT_CLUST ); CH376WriteData( 0 ); CH376WriteData( 0 ); CH376WriteData( 0 ); CH376WriteData( 0 ); Nop(); /* 延迟 */ Nop(); CH376WriteCmd( CMD0H_FILE_OPEN ); while( USB_INT ) //等待中断 { Nop(); } mDelaymS( 100 ); CH376WriteCmd( CMD01_GET_STATUS);// 0x22 /* 获取中断状态*/ res = CH376ReadData(); Nop(); /* 延迟 */ Nop(); Nop(); /* 延迟 */ Nop(); if( res == 0x14 ) { return; } while(1) { LcdOpenErr(); } }

根目录下文件打开返回0x42 以上是子程序 其中 FileName[]储存的是根目录下的文件名 请问这是什么原因?

0x42代表文件没有找到,可能是文件名称错误,你FileName里存储的文件名是怎样的?最好先用字符串测试通过再修改,例如:"/CH376HFT.TXT".


FileName中存放的是我键盘输入的文件名。 我用创建文件的函数创建了以FileName[]为名的文件, 但是现在用打开文件的函数打开名为FileName[]的文件却出现了这样的错误。 文件名前要加“/”么? 创建的时候也是没有加的


"/"或者"\\"是一般都是要加的,你可以看一下CMD_SET_FILE_NAME(0x2F)命令关于文件名的说明。


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