大家好,
為什么我用CH375不能初始化USB2.0的U盤呢?在我用DISK_INIT(0x51)命令來初始化2。0的U盤的時候,返回的中斷狀態(tài)總是0x15(即為USB_INT_CONNECT-USB設(shè)備連接事件)。而我用CH375初始化USB1.1的U盤就一切正常。這是為什么?
大家好,
為什么我用CH375不能初始化USB2.0的U盤呢?在我用DISK_INIT(0x51)命令來初始化2。0的U盤的時候,返回的中斷狀態(tài)總是0x15(即為USB_INT_CONNECT-USB設(shè)備連接事件)。而我用CH375初始化USB1.1的U盤就一切正常。這是為什么?
你用下面的程序試下看可以不可以初始化: UINT8 mInitDisk( void ) { /* 初始化磁盤 */ UINT8 Status,i,j=0; CH375_WR_CMD_PORT( CMD_GET_STATUS ); /* 產(chǎn)生操作完成中斷, 獲取中斷狀態(tài) */ Status = CH375_RD_DAT_PORT( ); if ( Status == USB_INT_DISCONNECT ) return( Status ); /* USB設(shè)備斷開 */ CH375_WR_CMD_PORT( CMD_DISK_INIT ); /* 初始化USB存儲器 */ Status = mWaitInterrupt( ); /* 等待中斷并獲取狀態(tài) */ if ( Status != USB_INT_SUCCESS ) return( Status ); /* 出現(xiàn)錯誤 */ while(1){j++; CH375_WR_CMD_PORT( CMD_DISK_SIZE ); /* 獲取USB存儲器的容量 */ Status = mWaitInterrupt( ); /* 等待中斷并獲取狀態(tài) */ if ( Status == USB_INT_SUCCESS ) break; /* 出現(xiàn)錯誤 */ mDelaymS( 250 ); if(j==5) return(Status); } CH375_WR_CMD_PORT( CMD_DISK_R_SENSE ); /* 獲取USB存儲器的容量 */ Status = mWaitInterrupt( ); /* 等待中斷并獲取狀態(tài) */ if ( Status == USB_INT_SUCCESS ){ /* 出現(xiàn)錯誤 */ for(i=0;i!=5;i++){ printf("Ready\n"); CH375_WR_CMD_PORT( CMD_DISK_READY ); /* 獲取USB存儲器的容量 */ Status = mWaitInterrupt( ); /* 等待中斷并獲取狀態(tài) */ if ( Status == USB_INT_SUCCESS ) break; /* 出現(xiàn)錯誤 */ } } return( 0 ); /* U盤已經(jīng)成功初始化 */ }
我就是用的這個程序,不能夠初始化,每次到CMD_DISK_INIT命令的時候,返回的中斷狀態(tài)為0x15(USB_INT_CONNECT)或者是0x2C(USB主機方式操作失?。?/p>
你看下你的U盤供電的電壓夠嗎?還有我們這個只是一般U盤的初始化,你如果初始化還是過不了的話,你可以使用我們提供的庫,那里面有一個DISK-READ函數(shù),是初始化U盤的
請問你們的那個庫文件是專門給C51的單片機的嗎,我用PIC可不可以用庫文件?還有怎么用庫文件?。?/p>
PIC單片機的庫沒有,我們有51的庫,AVR的庫,430的庫,ARM庫以及DSP的庫