我初始化了u盘,miniking u盘可以读出来miniking字样,但是朗科的u盘读不出来,检测的时候读回来的状态数据是0x15,为什么初始化完usb的时候那个状态是0x15 而不是0x14呢??
命令为:CMD_DISK_INIT 串口调试的
我初始化了u盘,miniking u盘可以读出来miniking字样,但是朗科的u盘读不出来,检测的时候读回来的状态数据是0x15,为什么初始化完usb的时候那个状态是0x15 而不是0x14呢??
命令为:CMD_DISK_INIT 串口调试的
你用下面的程序来做初始化看下: 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盘已经成功初始化 */ }
CH375_WR_CMD_PORT( CMD_DISK_INIT ); /* 初始化USB存储器 */ Status = mWaitInterrupt( ); /* 等待中断并获取状态 */ if ( Status != USB_INT_SUCCESS ) return( Status ); /* 出现错误 */
我用的就是这个,然后在if这一步就是Status=0x15,而USB_INT_SUCCESS为0x14
现在回来的是0x2C 是说XX00=设备返回时超时,设备没有返回。
不知道这个时是什么意思???
u盘在pc上时好的
一般出现0X2C的状态返回,有下面几种可能: 1,UD+,UD-串接的电阻太大,从而导致USB的UD+和UD-的电压降的太多,从而不工作 2,中断脚没有连接的时候也是会出现这种情况的
UD+ UD- 没有串接电阻啊,中断脚接了,但是没有上拉电阻而已。
UD+ UD- 要串接电阻吗?? 你们给的图上没有啊
miniking 的u盘是可以读出来的啊 这个是个问题
问一下,贵公司的那个串口的例程我怎么下载不了啊
要是这样的话,但是建议你用我们的库测试下看可以不可以操作??下载CH375LIB.ZIP,里面有51的FILELIB5,里面有串口的例子程序,你可以用那个程序来测试看可以不可以操作