調(diào)試CH554主機(jī)通信時(shí)會(huì)莫名奇妙出現(xiàn)斷開(kāi)和連接事件

我在使用CH554調(diào)試AOA和ADB通信時(shí),在USBHostTransact函數(shù)中會(huì)返回0x16和0x15,發(fā)現(xiàn)返回這兩個(gè)值是因?yàn)橄旅孢@段函數(shù)內(nèi)容

if ( UIF_DETECT )? ? // USB設(shè)備插拔事件

? ? ? ? {

? ? ? ? ? ? UIF_DETECT = 0;? // 清中斷標(biāo)志

? ? ? ? ? ? s = AnalyzeRootHub( );? ?// 分析ROOT-HUB狀態(tài)

? ? ? ? ? ? if ( s == ERR_USB_CONNECT )

? ? ? ? ? ? {

? ? ? ? ? ? ? ? FoundNewDev = 1;

? ? ? ? ? ? }

? ? ? ? ? ? if ( ThisUsbDev.DeviceStatus == ROOT_DEV_DISCONNECT )

? ? ? ? ? ? {

? ? ? ? ? ? ? ? return( ERR_USB_DISCON );? ? // USB設(shè)備斷開(kāi)事件

? ? ? ? ? ? }

? ? ? ? ? ? if ( ThisUsbDev.DeviceStatus == ROOT_DEV_CONNECTED )

? ? ? ? ? ? {

? ? ? ? ? ? ? ? return( ERR_USB_CONNECT );? ? // USB設(shè)備連接事件

? ? ? ? ? ? }

? ? ? ? ? ? mDelayuS( 200 );? // 等待傳輸完成

? ? ? ? }


即里面的usb設(shè)備斷開(kāi)和usb設(shè)備連接事件,這會(huì)是什么原因呢?應(yīng)該不是硬件問(wèn)題,我調(diào)整傳輸函數(shù)會(huì)發(fā)現(xiàn)沒(méi)事,只有到某一個(gè)通信函數(shù)時(shí)會(huì)出現(xiàn)錯(cuò)誤?

難道是USB通信過(guò)程中出現(xiàn)錯(cuò)誤,導(dǎo)致總線復(fù)位?

但是USB通信是什么錯(cuò)誤呢?如何在進(jìn)一步分析?謝謝。

需要對(duì)總線進(jìn)行抓包,可以使用帶協(xié)議解析的邏輯分析儀或者專用的USB總線分析儀。


昨晚又測(cè)了一下,應(yīng)該是host發(fā)送adb命令時(shí),手機(jī)沒(méi)有正確接收,或者說(shuō)host發(fā)送的不對(duì),導(dǎo)致手機(jī)主動(dòng)斷開(kāi)usb,導(dǎo)致總線復(fù)位。設(shè)備總線的復(fù)位,導(dǎo)致上位機(jī)aoa軟件讀寫(xiě)錯(cuò)誤。下一步重點(diǎn)研究ADB命令和主機(jī)aoa軟件對(duì)錯(cuò)誤的處理??纯茨懿荒苷{(diào)通。


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

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