2012-07-05 82 views
0

我想將具有cp2102的自定義設備連接到安卓平板電腦。我將它連接在VCP模式(使用PID EA60),並使用JavaComm找到它,將cp2102或FTDI連接到Android 4.x

@SuppressWarnings("unchecked") 
Enumeration <CommPortIdentifier> ports = CommPortIdentifier.getPortIdentifiers(); 

while (ports.hasMoreElements()) 
{ 
    final CommPortIdentifier port = ports.nextElement(); 
    Log.d(null, port.toString()); 
} 

但我從來沒有進入循環。

我可以選擇使用FTDI而不是silabs。他們有一個通過JNI使用他們的D2xx DLL的變種。我跟着他們的指南,但我有一個內存崩潰(LogCat中的信號和堆損壞的消息),當我連接ft232r並嘗試確定連接的設備的數量。當我從平板電腦上拔下設備時,相同的代碼(他們的示例代碼)工作得很好,返回零,這是真的。

當我使用帶有FTDI的JavaComm時,結果與cp2102相同:沒有輸入循環。

我想我錯過了什麼或做錯了什麼。

如果我要使用usb模式而不是VCP,我已經準備好開始搜索,我只需要一個提示。

任何幫助將不勝感激。

+0

您是否檢查過您的Android內核是否支持CP2102?在我的SL101中,FTDI支持,但CP2102不支持。您可以在插入設備後從內核日誌中檢查該內容。儘管如此,FTDI設備在默認情況下權限不好。 – Zouppen

回答

3

這裏的問題是默認情況下,Android內核中未啓用CP210x驅動程序。因此,您需要將此驅動程序構建到您的內核中以獲取tty訪問權限並使用JavaComm。

另一種選擇是使用USB Host functionality並直接通過it's API訪問CP210x。