375读写模块不能枚举大于255个文件
我用51单片机联375读写模块并口中断方式(模块是 V2.7),枚举大于255文件,改文件长度
,ExecCommand( CMD_SetFileSize, 4 )就无响应,用小于255的方式就能用,哪位大侠帮帮我吧.
[u]能正常使用[/u]
for ( c=0; c<255; c++ ) { /* 最多搜索前255个文件*/
strcpy( mCmdParam.Enumer.mPathName, "\\C51\\CH375*" );
/* 在C51 子目录下搜索以CH375 开头的文件名,*为通配符*/
for ( i=0; mCmdParam.Enumer.mPathName[i]!=0; i++ ); /* 指向文件名的结束符*/
mCmdParam.Enumer.mPathName[i] = c; /* 将结束符替换为搜索的序号,从0到255 */
i=ExecCommand( CMD_FileEnumer, i+1 ); /* 文件名中含有通配符*,搜索文件*/
if ( i==ERR_MISS_FILE ) break; /* 再也搜索不到匹配文件,已经没有匹配的文件名*/
if ( i!=ERR_SUCCESS && i!=ERR_FOUND_NAME ) break; /* 出错*/
printf( "found name %d#: %s\n", (unsigned int)c, mCmdParam.Enumer.mPathName );
/* 搜索到相匹配的文件名,显示序号和搜索到的匹配文件名或者子目录名*/
}

[u]不能正常使用[/u]
枚举更多数量的文件的例子:
for ( int count=0; count<20000; count++ ) { /* 最多搜索前20000个文件*/
mCmdParam.SetFileSize.mFileSize = count; /* 指定搜索的序号,几乎没有上限*/
ExecCommand( CMD_SetFileSize, 4 ); /* 修改模块内子程序库的文件长度变量*/
strcpy( mCmdParam.Enumer.mPathName, "\\*" ); /* 在根目录下搜索所有文件名*/
i=strlen( mCmdParam.Enumer.mPathName ); /* 计算文件名长度,指向结束符*/
mCmdParam.Enumer.mPathName[i] = 0xFF; /* 将结束符替换为255说明序号在变量中*/
i=ExecCommand( CMD_FileEnumer, i+1 ); /* 文件名中含有通配符*,搜索文件*/
if ( i==ERR_MISS_FILE ) break; /* 再也搜索不到匹配文件,已经没有匹配的文件名*/
if ( i!=ERR_SUCCESS && i!=ERR_FOUND_NAME ) break; /* 出错*/
printf( "found name %d#: %s\n", count, mCmdParam.Enumer.mPathName );
/* 搜索到相匹配的文件名,显示序号和搜索到的匹配文件名或者子目录名*/
ExecCommand( CMD_QueryStatus, 0 ); /* 查询模块状态*/
if ( mCmdParam.Status.mFileSize!=0xFFFFFFFF ) printf( "file\n" ); /* 枚举到文件*/
else printf( "this is a Sub-Directory\n" ); /* 枚举到子目录*/
}

热门产品推荐 : CH342: USB转双串口芯片
枚举序号是一个8位数,只能表示到255,
“ for ( c=0; c<255; c++ ) { /* 最多搜索前255个文件*/ ”

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