usb和上位機(jī)通訊過程中因為一些原因?qū)е鲁鲥e,比如報 USTS C0000012 等這樣的一些或其他錯誤后,usb的上傳端口就不能上傳任何數(shù)據(jù)了,通過調(diào)試跟蹤發(fā)現(xiàn)上位機(jī)下發(fā)的數(shù)據(jù)是正常的。這個時候從新拔插USB就能恢復(fù)通訊,請問改如何檢測這種錯誤并處理,謝謝
查了下 這個錯誤的解釋
USBD_STATUS_BABBLE_DETECTED 0xC0000012 The device returned a babble detected error (defined for backward?
compatibility with the USB 1.0)."babble"錯誤. 檢測到設(shè)備返回了一個無意義的數(shù)據(jù)
"babble"錯誤. 一個"babble"錯誤發(fā)生當(dāng)端點(diǎn)接受數(shù)據(jù)多于端點(diǎn)的特定最大報文大小.已經(jīng)超過設(shè)置的最大發(fā)送的報文長度了
那在發(fā)生錯誤后改如何復(fù)位,怎么恢復(fù)通訊。發(fā)生錯誤后是否會觸發(fā)usb控制器的哪個中斷?如何復(fù)位這個錯誤
你好,請問USB通訊具體是什么樣的應(yīng)用場景呢,是什么類型的設(shè)備,USB使用哪一種傳輸方式?
根據(jù)報錯的解釋分析,需要檢查實際返回的數(shù)據(jù)大小是否與描述符中定義的返回長度一致;復(fù)位不能從根源上解決問題,通訊中實際上傳數(shù)據(jù)需要根據(jù)描述符中定義的長度來返回,可避免此類錯誤。
后續(xù)可將具體的問題描述發(fā)至郵箱:liuy@wch.cn