[求助]为什么我用CH375不能初始化USB2.0的U盘呢

大家好,

为什么我用CH375不能初始化USB2.0的U盘呢?在我用DISK_INIT(0x51)命令来初始化2。0的U盘的时候,返回的中断状态总是0x15(即为USB_INT_CONNECT-USB设备连接事件)。而我用CH375初始化USB1.1的U盘就一切正常。这是为什么?

你用下面的程序试下看可以不可以初始化: UINT8 mInitDisk( void ) { /* 初始化磁盘 */ UINT8 Status,i,j=0; CH375_WR_CMD_PORT( CMD_GET_STATUS ); /* 产生操作完成中断, 获取中断状态 */ Status = CH375_RD_DAT_PORT( ); if ( Status == USB_INT_DISCONNECT ) return( Status ); /* USB设备断开 */ CH375_WR_CMD_PORT( CMD_DISK_INIT ); /* 初始化USB存储器 */ Status = mWaitInterrupt( ); /* 等待中断并获取状态 */ if ( Status != USB_INT_SUCCESS ) return( Status ); /* 出现错误 */ while(1){j++; CH375_WR_CMD_PORT( CMD_DISK_SIZE ); /* 获取USB存储器的容量 */ Status = mWaitInterrupt( ); /* 等待中断并获取状态 */ if ( Status == USB_INT_SUCCESS ) break; /* 出现错误 */ mDelaymS( 250 ); if(j==5) return(Status); } CH375_WR_CMD_PORT( CMD_DISK_R_SENSE ); /* 获取USB存储器的容量 */ Status = mWaitInterrupt( ); /* 等待中断并获取状态 */ if ( Status == USB_INT_SUCCESS ){ /* 出现错误 */ for(i=0;i!=5;i++){ printf("Ready\n"); CH375_WR_CMD_PORT( CMD_DISK_READY ); /* 获取USB存储器的容量 */ Status = mWaitInterrupt( ); /* 等待中断并获取状态 */ if ( Status == USB_INT_SUCCESS ) break; /* 出现错误 */ } } return( 0 ); /* U盘已经成功初始化 */ }


我就是用的这个程序,不能够初始化,每次到CMD_DISK_INIT命令的时候,返回的中断状态为0x15(USB_INT_CONNECT)或者是0x2C(USB主机方式操作失败)


你看下你的U盘供电的电压够吗?还有我们这个只是一般U盘的初始化,你如果初始化还是过不了的话,你可以使用我们提供的库,那里面有一个DISK-READ函数,是初始化U盘的


请问你们的那个库文件是专门给C51的单片机的吗,我用PIC可不可以用库文件?还有怎么用库文件啊?


PIC单片机的库没有,我们有51的库,AVR的库,430的库,ARM库以及DSP的库


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