0

Javaを使用してマイクロコントローラと通信しようとしています。Windowsでは、単に「COM4」を使用すると、コードが完全に機能します。Linux では、「/dev/ttyUSB0」を使用しようとしています。しかし、「シリアルポートが見つかりませんでした」というエラーが表示されます。

以前dmesg | grep ttyはアクティブなシリアル ポートが表示されていました。これは正しい方法ですか?

どうすればこの問題を解決できますか? 私はLinuxに本当に慣れていないので、簡単な言葉で説明してください

ここに私のコードがあります

Enumeration portIdentifiers = CommPortIdentifier.getPortIdentifiers();

  CommPortIdentifier portId = null; 
  while (portIdentifiers.hasMoreElements())
  {
      CommPortIdentifier pid = (CommPortIdentifier) portIdentifiers.nextElement();
      if(pid.getPortType() == CommPortIdentifier.PORT_SERIAL &&
         pid.getName().equals("/dev/ttyUSB0")) 
      {
          portId = pid;
          break;
      }
  }
  if(portId == null)
  {
      System.err.println("Could not find serial port "); // + wantedPortName);
      System.exit(1);
  }
4

2 に答える 2

1

lsusbシリアルからUSBへのコンバーターが表示されます

lsusb | grep -i serial

私のシステムで与える

バス 001 デバイス 005: ID 067b:2303 Prolific Technology, Inc. PL2303 シリアル ポート

ls -l /dev/ttyUSB*

crw-rw---- 1 ルート ダイヤルアウト 188、0 Feb 18 10:30 /dev/ttyUSB0

その後、次の方法でアクセスできます

cat /dev/ttyUSB0

ポートへのアクセスが必要なユーザーは、グループdialoutまたはシステム内の任意のグループに属している必要があります。でユーザーを追加できます

adduser <user-name> dialout
于 2013-02-18T09:34:12.450 に答える
0

どうやらJava通信APIにはLinux実装http://www.oracle.com/technetwork/java/index-139971.htmlがないため、コードが機能しませんでした。

シリアル通信用にRXTXライブラリをインストールしましたが、コードは正常に機能しています。助けとサポートをしてくれたnosとOlafDietscheに感謝します。

于 2013-02-19T09:43:25.407 に答える