[求助]CH376不能识别读卡器?买了个U盘来测试,也不行?

while(1) { AudioLED_ON();

USBstatus = CH376DiskConnect(); if(USBstatus==USB_INT_SUCCESS) //为什么不是USB_INT_CONNECT?u盘插入 { USART1_SendByte(0x51);//lin test mDelaymS(200); for ( i = 0; i < 100; i ++ ) { mDelaymS(50); USBstatus = CH376DiskMount(); USART1_SendByte(USBstatus);//lin test if(USBstatus==USB_INT_SUCCESS) break; //准备好 else if(USBstatus==ERR_DISK_DISCON)break; //断开 USART1_SendByte(CH376GetDiskStatus( ));//lin test if ((CH376GetDiskStatus( ) >= DEF_DISK_MOUNTED) && (i >= 5) ) break; // 有的U盘总是返回未准备好,不过可以忽略,只要其建立连接MOUNTED且尝试5*50mS } if ( USBstatus == ERR_DISK_DISCON ) // 检测到断开,重新检测并计时 continue;

if ( CH376GetDiskStatus( ) < DEF_DISK_MOUNTED ) // 未知USB设备,例如USB键盘、打印机等 goto UnknownUsbDevice;

//if(USBstatus==USB_INT_SUCCESS)//磁盘初始化 //{ strcpy( buf, "\CH376.TXT" ); USART1_SendByte(0x52);//lin test USBstatus = CH376FileOpen(buf); USART1_SendByte(USBstatus);//lin test if ( USBstatus == ERR_MISS_DIR || USBstatus == ERR_MISS_FILE ) // 没有找到目录或者没有找到文件 // 列出文件,完整枚举可以参考EXAM13全盘枚举 { if ( USBstatus == ERR_MISS_DIR ) strcpy( buf, "\\*" ); // C51子目录不存在则列出根目录下的文件 else strcpy( buf, "\\C51\\CH376*" ); // CH376HFT.C文件不存在则列出\C51子目录下的以CH376开头的文件 USBstatus = CH376FileOpenPath( buf ); // 枚举多级目录下的文件或者目录,输入缓冲区必须在RAM中 while ( USBstatus == USB_INT_DISK_READ ) // 枚举到匹配的文件 */ { CH376ReadBlock( buf ); // 读取枚举到的文件的FAT_DIR_INFO结构,返回长度总是sizeof( FAT_DIR_INFO ) pDir = (P_FAT_DIR_INFO)buf; // 当前文件目录信息 */ if ( pDir -> DIR_Name[0] != '.' ) // 不是本级或者上级目录名则继续,否则必须丢弃不处理 { if ( pDir -> DIR_Name[0] == 0x05 ) pDir -> DIR_Name[0] = 0xE5; // 特殊字符替换 pDir -> DIR_Attr = 0; // 强制文件名字符串结束以便打印输出 } xWriteCH376Cmd( CMD0H_FILE_ENUM_GO ); // 继续枚举文件和目录 xEndCH376Cmd( ); USBstatus = Wait376Interrupt( ); } USART1_SendByte(USBstatus);//lin test } else // 找到文件或者出错 { for(i=0;i<30;i++) buf[i]=0; CH376ByteRead( buf, 30, &RealCount ); for(i=0;i<30;i++) USART1_SendByte(buf[i]); } //}

UnknownUsbDevice: while ( CH376DiskConnect( ) == USB_INT_SUCCESS ) { /* 检查U盘是否连接,等待U盘拔出 */ mDelaymS( 1000 ); } } AudioLED_OFF(); mDelaymS(300); }

上面是代码,连接读卡器上电(有SD卡,电脑可以正确识别的),CH376DiskConnect()正确返回USB_INT_SUCCESS,但下面的for循环,CH376DiskMount()都是返回0x1f,CH376GetDiskStatus( )都是返回0x02,最后程序跳到UnknownUsbDevice,不能识别读卡器?

读卡器里面有没有装入SD卡?


有的,装了SD卡,把读卡器插到电脑可以正常访问的


CH376DiskMount()返回0x1f,CH376GetDiskStatus( )返回0x02,是哪里出问题呢?


新买了个U盘回来测试,也不能识别。CH376DiskConnect()正常。 插入U盘,CH376DiskMount()返回0x2c,CH376GetDiskStatus( )返回0x02; 插入读卡器的话,CH376DiskMount()返回0x1f,CH376GetDiskStatus( )返回0x02;


检查一下USB口,或者将图贴出来,这部分可能有问题


这是ch376图纸,链接到stm32f103的

20125251851247.jpg


CH376版本号?


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