關(guān)于先接入U(xiǎn)盤后上電不能正常工作的問(wèn)題

我后來(lái)分析了下,找著了原因,但不知如何解決,是這樣的 當(dāng)我設(shè)置好ch375的工作模式為啟用主機(jī)模式時(shí),它馬上檢測(cè)到U盤的接入,因此 ch375_data_port的返回值為15,即返回了USB設(shè)備連接事件中斷值,而不是返回操作成功值51,所以不能正常工作。請(qǐng)教這個(gè)問(wèn)題如何解決呢:程序代碼如下: ch375_cmd_port=CMD_SET_USB_MODE; delay20us(); ch375_data_port=0x06; delay20us(); statuscode=ch375_data_port;//在此返回的值為15,USB連接設(shè)備中斷值,不是操作成功值; 我試著改了一下延時(shí)程序,結(jié)果一樣 if(statuscode!=CMD_RET_SUCCESS) { err_code=0x22; err_deal(err_code); return(statuscode); } else return(0);

在設(shè)置工作模式前,我已經(jīng)關(guān)閉了中斷,它照樣能檢測(cè)到U盤的接入,因?yàn)?,雖然單片機(jī)不能進(jìn)入中斷服務(wù)了程序,但ch375_data_port的值還是輸出中斷值,我想這是因?yàn)閏h375內(nèi)部集成了mcu,自動(dòng)檢測(cè)到U盤的接入,更改了數(shù)據(jù)口值的原因,那上述問(wèn)題怎么解決呢


首先,就是在你U盤接上的時(shí)候,你設(shè)置模式,你不要判斷成功不成功,你只要判斷是不是失敗就可以了,你可以試下這個(gè)程序看下可以不可以: ch375_cmd_port=CMD_SET_USB_MODE; delay20us(); ch375_data_port=0x06; delay20us(); statuscode=ch375_data_port;//在此返回的值為15,USB連接設(shè)備中斷值,不是操作成功值; printf("%d\n",statuscode); 我試著改了一下延時(shí)程序,結(jié)果一樣 while(statuscode!=CMD_RET_SUCCESS); 再次,你的這個(gè)程序可能在讀狀態(tài)的時(shí)候可能慢了點(diǎn),你還沒(méi)來(lái)得及讀取狀態(tài)的時(shí)候就產(chǎn)生了375檢測(cè)到磁盤插上的中斷,返回的是0X15,所以說(shuō),這是一個(gè)正常的情況.


謝謝,和我想的一樣,我已經(jīng)解決此問(wèn)題,的確是這樣,我在設(shè)置模式后,加了個(gè)判斷語(yǔ)句,要么設(shè)置成功,要么檢測(cè)到U盤接入,都往下執(zhí)行,


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

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