搜索U盘文件总数 for ( e = 0; e < 255; e ++ ) { i = mCopyCodeStringToIRAM( mCmdParam.Open.mPathName, "\\*" ); //搜索文件 mCmdParam.Open.mPathName[ i ] = e; i = CH375FileOpen( ); if ( i == ERR_MISS_FILE ) {e--; break;} //文件总数计数 if ( i == ERR_FOUND_NAME ) continue; else mStopIfError( i );//显示错误代码后返回 } 这段程序以前使用库4正常, 为支持FAT32,库4换库6后,显示错误代码10H,请问为何?(U盘是FAT16)
你用的是串口方式,还是并口方式,对中断INT脚,是中断方式还是,查询方式,还是直接去获取状态,而没有等待INT脚变低后,再去获取状态.如果,直接获取状态的话,就很有可能会出错. 另外,你 下最新的版本试试看!
并口方式,INT脚是中断方式,库6是最新的,前面的程序与CH375LIB\MCS51\FILELIB4\EXAM2里的演示程序相同。/* LX51 CH375HFT.OBJ , CH375HF4.LIB 如果将CH375HF4换成CH375HF6就可以支持FAT32 */ 可检测到U盘的插入。 错误代码10H是什么错误?375说明文档内没有提到。
代码10H通常是CH375的INT#中断引脚状态出错,确切的说是检测到了意外的或者多余的中断, 可能原因有U盘插入后没有延时或者没有执行DISKREADY等,或者你修改了xQueryInterrupt子程序但有错误
你的库是不是最新的,建议你重新下载库文件将声明文件和库文件重新替换试试。
1.U盘插入后延时6S,未调用DISKREADY,其它未修改。 另:调用以下程序死机 for ( i = 0; i < 10; i ++ ) { /* 有的U盘总是返回未准备好,不过可以被忽略 */ Delay10mS( 10 );//延时100mS if ( CH375DiskReady( ) == ERR_SUCCESS ) break; /* 查询磁盘是否准备好 */ }
2.库文件是昨晚重新下载的,试过不行。
死机原因找到了,我用的是CH375S。不支持CH375DiskReady( ) 。其它故障是否也是此原因? 如果是此原因,我就买几片CH375A试一试。 客户等着呢。 望回复,为盼!
?????????????????????????????
?????????????????????????????
?????????????????????????????
?????????????????????????????
你用EXAM0或者EXAX1试试,查询方式看有否问题,CH375DiskReady可以用于任何CH375S芯片, 有的U盘CH375DiskReady必须先执行,还有,先尽量完全用沁恒的例子调通,好后再修改否则难查原因, 以前有个人报0x10错是因为INT#中断引脚连接有误/没有延时等
??? 以下命令仅适用于CH375A 芯片 01H GET_IC_VER 版本号获取芯片及固件版本 03H ENTER_SLEEP 进入低功耗睡眠挂起状态 58H DISK_INQUIRY 产生中断查询USB存储设备的特性 59H DISK_READY 产生中断检查USB存储设备是否就绪