我在使用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)一步分析?謝謝。