我正在使用通過Libusb Java使用PIC18F4550構建的USB設備進行通信。 我可以異步地寫入它,所以我不需要使用設備對變量進行池化,但是我無法使用Java應用程序進行處理。我必須不斷嘗試從中讀取消息,引發微控制器中斷,我試圖避免的是什麼。 有沒有一種使用類似回調或阻塞命令的方式,只有當它實際上有東西要讀取時纔會嘗試從設備讀取? 如果我無法讓我的問題更清楚,我會非常抱歉,任何懷疑都會被問到!Libusb Java - 從設備異步讀取
1
A
回答
1
不,這是不可能的,因爲USB工作的基本方式。一個USB設備只能在主機詢問是否有任何要說的時候與主機通話。負責誰可以說話的主持人。當您有一個IN端點時,主機必須定期輪詢您的設備以檢查設備是否有任何要說的內容。
我以前編寫過PIC18F4550,並且我知道如果您將IN端點配置爲發送NAK,則每當主機要求來自端點的數據時,您都不必處理中斷。我懷疑你正在配置端點發送零長度數據包,實際上你應該配置它發送NAK。 USB SIE可以處理NAK響應,無需您的任何固件干預。
但是,您可以使用阻止命令從USB讀取數據。它們從Java程序的角度來阻止命令,但是在硬件中它們是通過輪詢USB設備來實現的。我沒有使用過「Libusb Java」,但我知道libusb 1.0支持blocking commands,比如libusb_bulk_transfer
。
相關問題
- 1. 使用libusb從USB設備讀取數據使用libusb從USB設備讀取數據
- 2. libusb不能聲明設備
- 3. Java - 異步閱讀?
- 4. 讀取從設備,讀寫主設置
- 5. 無法從設備讀取
- 6. libusb-win32 - 無法從鍵盤讀取
- 7. 從標準輸入異步讀取
- 8. 異步套接字讀取
- 9. 異步I/O(從異步webrequest讀取流)
- 10. 從CMD讀取輸出異步
- 11. 不斷從NetworkStream讀取異步
- 12. 從控制檯異步讀取。
- 13. 從流中異步反覆讀取?
- 14. NullReferenceException從異步HttpWebRequest流讀取
- 15. 從gjs讀取異步標準輸出
- 16. 從SSH輸出異步讀取
- 17. 未找到設備,libusb的淨
- 18. 訪問Linux上的USB設備(libusb-1.0)?
- 19. 讀取文件異步
- 20. NSStreamDelegate讀取異步數據
- 21. 使用TIdTCPClient異步讀取
- 22. 異步讀取失敗
- 23. 如何異步讀取stdin?
- 24. 安卓讀取USB異步
- 25. 異步套接字讀取
- 26. 有沒有辦法使用libusb API獲取USB設備的設備節點?
- 27. 異步從波科HTTPClientSession讀
- 28. 蟒蛇:從USB HID設備讀取
- 29. 從windows中讀取android設備信息
- 30. USB設備讀取文件從android