U盤無法初始化

U盤能檢測到連接,返回為0X15,但是初始化后還是返回0X15,不知道為什么?試了好幾個U盤,結(jié)果一樣.有以下幾個疑問請解答 UINT8 Status,i,j=1; j=CH375LibInit( ); /* 初始化CH375程序庫和CH375芯片,操作成功返回0 */ //Status = mWaitInterrupt( ); CH375_WR_CMD_PORT( CMD_GET_STATUS ); /* 產(chǎn)生操作完成中斷, 獲取中斷狀態(tài) */ Status = CH375_RD_DAT_PORT( ); 這里返回的0X15[b]文字[/b][u]文字[/u] 說明來了中斷,那么另一段程序 UINT8 Status,i,j=1; j=CH375LibInit( ); /* 初始化CH375程序庫和CH375芯片,操作成功返回0 */ Status = mWaitInterrupt( ); 為什么等不到中斷,按理說這應(yīng)該有中斷,并且返回也為0X15 unsigned char mWaitInterrupt() { /* 主機(jī)端等待操作完成, 返回操作狀態(tài) */ while(P3^2 ); /* 查詢等待CH375操作完成中斷(INT#低電平) */ CH375_WR_CMD_PORT( CMD_GET_STATUS ); /* 產(chǎn)生操作完成中斷, 獲取中斷狀態(tài) */ return( CH375_RD_DAT_PORT( ) ); }

[b]文字[/b][u]文字[/u]

另外一個問題是,如果來中斷,那么P3.2口應(yīng)該為高電平,在沒執(zhí)行CMD_GET_STATUS之前應(yīng)該一直是高電平,執(zhí)行后才變?yōu)榈碗娖?可是我雖然來了中斷,看不到這現(xiàn)象,在CMD_GET_STATUS前后一直是高電平,盡管確實(shí)檢測到連接中斷 還有我在檢測到連接后,故意把Status設(shè)置為0 Status=0; delay2us( ); delay2us( ); delay2us( ); delay2us( ); delay2us( ); CH375_WR_CMD_PORT( CMD_DISK_INIT ); /* 初始化USB存儲器 */ Status = mWaitInterrupt( ); /* 等待中斷并獲取狀態(tài) */ 最后返回的是0X15 ,崩潰啊,為什么,請指教?


你用我們子程序庫的話,在庫的初始化成功之后,采用我們例子程序中的 while ( CH375DiskStatus != DISK_CONNECT ) xQueryInterrupt( ); 來檢測U盤插入就可以了,并且采用子程序庫的話,也不需要你自己發(fā)CMD_DISK_INIT 命令來初始化U盤。 在沒有產(chǎn)生中斷之前,INT#一直為高電平,只有中斷產(chǎn)生,它才拉低,直到執(zhí)行了CMD_GET_STATUS之后,它才撤消低電平重新拉高。


我做實(shí)驗(yàn)遇到的問題是函數(shù)xQueryInterrupt里面的第一句while ( CH375_INT_WIRE )走不下去了,看樣子是沒產(chǎn)生中斷。用的是子程序庫CH375HFC.LIB.什么原因呢?


只要你的庫的初始化函數(shù)通過了的話,那么,你插上U盤就會產(chǎn)生中斷,除非你插上U盤之后電壓降的太低,導(dǎo)致芯片不正常工作。


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频