两个批号的CH374一个好的,一个有问题?急!!!

您好。我以前用的CH374S批号是:203234048,读U盘文件,做了几块都是好的。 现在买了几片CH374S批号是:202404065(从市场上买的,但看上去是全新的),用上去以后INIT是好的。总是在读根目录文件: CH374FileOpen()时,出现错误, #define ERR_USB_DISK_ERR 0x1F /* USB存储器操作失败,在初始化时可能是USB存储器不支持,在读写操作中可能是磁盘损坏或者已经断开 */ 还有时是: #define ERR_BPB_ERROR 0xA1 /* 磁盘尚未格式化,或者参数错误,需要由WINDOWS采用默认参数重新格式化 */ 程序如下,请问是芯片的问题,还是我焊接,或是软件问题?谢谢,请回复!

UINT8 ListAll( void ) /* 以广度优先的算法枚举整个U盘中的所有文件及目录 */ { UINT8 i; UINT16 OldFileCount; UINT16 FileCount; UINT32 CurrentDirStartClust; /* 保存当前目录的起始簇号,用于加快文件枚举和打开速度 */

OldFileCount = FileCount = 0; /* 清文件结构计数 */ FileNameBuffer[ 0 ].Name[0] = '/'; /* 根目录,是完整路径名,除根目录是绝对路径之外都是相对路径 */ FileNameBuffer[ 0 ].Name[1] = 0; FileNameBuffer[ 0 ].DirStartClust = 0; /* 根目录的这个参数无意义 */ FileNameBuffer[ 0 ].Attr = ATTR_DIRECTORY; /* 根目录也是目录,作为第一个记录保存 */ my_usbpara.filenum=0; for ( FileCount = 1; OldFileCount < FileCount; OldFileCount ++ ) { /* 尚有新枚举到的文件名结构未进行分析 */ if ( FileNameBuffer[ OldFileCount ].Attr & ATTR_DIRECTORY ) { /* 是目录则继续进行深度搜索 */ strcpy( mCmdParam.Open.mPathName, FileNameBuffer[ OldFileCount ].Name ); /* 目录名,除根目录外都是相对路径 */ CH374vStartCluster = FileNameBuffer[ OldFileCount ].DirStartClust; /* 当前目录的上级目录的起始簇号,便于用相对路径打开,比完整路径名速度快 */ i = CH374FileOpen( ); /* 打开目录,仅为了获取目录的起始簇号以提高速度 */ if ( i == ERR_SUCCESS ) return( ERR_MISS_DIR ); /* 应该是打开了目录,但是返回结果是打开了文件 */ if ( i != ERR_OPEN_DIR ) return( i ); if ( OldFileCount ) CurrentDirStartClust = CH374vStartCluster; /* 不是根目录,获取目录的起始簇号 */ else { /* 是根目录,获取根目录的起始簇号 */ if ( CH374vDiskFat == DISK_FAT32 ) CurrentDirStartClust = CH374vDiskRoot; /* FAT32根目录 */ else CurrentDirStartClust = 0; /* FAT12/FAT16根目录 */ } CH374FileClose( ); /* 对于根目录一定要关闭 */

// strcpy( mCmdParam.Open.mPathName, FileNameBuffer[ OldFileCount ].Name ); /* 目录名,由于mPathName未被修改所以无需再复制 */ CH374vStartCluster = FileNameBuffer[ OldFileCount ].DirStartClust; /* 当前目录的上级目录的起始簇号,便于用相对路径打开,比完整路径名速度快 */ i = ListFile( ); /* 枚举目录,由回调程序xFileNameEnumer产生记录保存到结构中 */ loadlist(); if ( i != ERR_SUCCESS ) return( i ); } }

(1)在Open之前,CH374DiskReady过了没? (2)从网上下载最新的库试试


如果048批号的可以操作U盘而065批号的不能操作的话,一定要去更新子程序库,否则新批号是不能操作的.


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