lpc2122 + ch375

大家好,我在用lpc2122 ,调ch375,发现读写U盘的扇区是成功的,但是读U盘文件总是不成功,有没有相同经历的个位,指点,帮忙。[Emot]27[/Emot][Emot]27[/Emot]

U盘写成功的话,那你是不是直接就读还是将文件关闭了在读呢?如果直接在读的话要将文件指针指向文件的开头才可以读,如果文件关闭了在读的话,那你要先打开文件才可以读,还有就是你不成功的时候返回的错误代码是多少??


strcpy( (char *)mCmdParam.Open.mPathName, "\\C51\\CH375HFT.C" ); /* 文件名,该文件在C51子目录下 */ i = CH375FileOpen( ); /* 打开文件 */ if ( i == ERR_MISS_DIR || i == ERR_MISS_FILE ) { /* 没有找到文件 */ /* 列出文件 */ if ( i == ERR_MISS_DIR ) pCodeStr = (UINT8 *)"\\*"; /* C51子目录不存在则列出根目录下的文件 */ else pCodeStr = (UINT8 *)"\\C51\\CH375*"; /* CH375HFT.C文件不存在则列出\C51子目录下的以CH375开头的文件 */ // LCD_printf( "List file %s\n", pCodeStr ); for ( c = 0; c < 255; c ++ ) { /* 最多搜索前255个文件 */ strcpy( (char *)mCmdParam.Open.mPathName, (char *)pCodeStr ); /* 搜索文件名,*为通配符,适用于所有文件或者子目录 */ i = strlen( (char const *)mCmdParam.Open.mPathName ); /* 计算文件名长度,以处理文件名结束符 */ mCmdParam.Open.mPathName[ i ] = c; /* 根据字符串长度将结束符替换为搜索的序号,从0到255 */ i = CH375FileOpen( ); /* 打开文件,如果文件名中含有通配符*,则为搜索文件而不打开 */ if ( i == ERR_MISS_FILE ) break; /* 再也搜索不到匹配的文件,已经没有匹配的文件名 */ if ( i == ERR_FOUND_NAME ) { /* 搜索到与通配符相匹配的文件名,文件名及其完整路径在命令缓冲区中 */ // LCD_printf( " match file %03d#: %s\n", (unsigned int)c, mCmdParam.Open.mPathName ); /* 显示序号和搜索到的匹配文件名或者子目录名 */ continue; /* 继续搜索下一个匹配的文件名,下次搜索时序号会加1 */ } else { /* 出错 */ mStopIfError( i ); break; } } pCodeStr = (UINT8 *)"找不到/C51/CH375HFT.C文件\xd\n"; for ( i = 0; i != 255; i ++ ) { if ( ( FILE_DATA_BUF[i] = *pCodeStr ) == 0 ) break; pCodeStr++; } NewSize = i; /* 新文件的长度 */ SecCount = 1; /* (NewSize+511)/512, 计算文件的扇区数,因为读写是以扇区为单位的 */ }


就是这样了


是不是375 要设什么模式,比如06


你的文件夹下面有这个文件吗?


有呀,在评估板上都能读文件CH375HFT.C,可是在armlpc 2212,上就不行了,i = CH375FileOpen( ); /* 打开文件 */ 还回B3,急呀!!!!


B3的错误是指定路径的某个子目录没有找到,可能是目录名称错误,那有可能是你输入的目录路径有点问题


有呀,在评估板上都能读文件CH375HFT.C,可是在armlpc 2212,上就不行了


接着运行,就会把U盘的分区给破坏了,要拿到windows下格式化,晕


怎么解决呢????


这个可能是你的编译器设置没设置好,给你发了完整的编译工程过去了


完整的编译工程,是可用了,但是只是io的形式,我改成总线的就不行了,可能是LPC2114不支持总线吧, i = CH375LibInit( ); 初始化CH375程序库和CH375芯片,操作成功返回0x81!!!!

译器设置,很关键,总线的要用哪个呢??? ,我试了都不行!!


LPC2114支持总线


但我用,总线的工程摸版在lpc 2212下也无法使用呀! LPC2114以总线的方式,可以访问ch375 。


2210好象支持总线方式,2212我不太清楚


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