0

cp2102 を搭載したカスタム デバイスを Android 搭載タブレットに接続したいと考えています。VCP モード (PID EA60 を使用) で接続し、JavaComm を使用してそれを見つけます。

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

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

しかし、私はループに入ることはありません。

シラブの代わりに FTDI を使用するオプションがあります。JNI を介して D2xx dll を使用するバリアントがあります。私は彼らのガイドに従いましたが、ft232r に接続して接続されているデバイスの数を特定しようとすると、メモリ クラッシュが発生しました (LogCat で何かを通知し、ヒープが破損したというメッセージが表示されます)。タブレットからデバイスのプラグを抜くと、同じコード (サンプル コード) が問題なく動作し、0 が返されます。これは本当です。

FTDI で JavaComm を使用すると、結果は cp2102 と同じになり、ループには入りません。

私は何かを見逃しているか、何か間違っていると思います。

たとえば、VCP の代わりに USB モードを使用する場合は、検索を開始する準備ができています。ヒントが必要です。

どんな助けでも大歓迎です。

4

1 に答える 1

3

ここでの問題は、CP210x ドライバーが Android カーネルでデフォルトで有効になっていないことです。したがって、このドライバーをカーネルに組み込んで、tty アクセスと JavaComm を使用できるようにする必要があります。

もう 1 つのオプションは、USB ホスト機能を使用して、CP210xの API で直接アクセスすることです。

于 2013-12-10T15:19:03.937 に答える