2016-03-31 2 views
0

Java DataOutputStreamクラスで私の問題の解決策を探しています。DataOutputStreamはシリアルポートに整数全体を書き込んでいません

マイクロコントローラに8ビットのバイナリ値を送信したいのですが、それは新しいアドレスにする必要があります。だから私は、関数DataOutputStream.writeByte(int arg0)を使用しようとしました。私は次のコードでアドレス110を送信しようとすると

、私はSERIALPORTは、ASCIIコード"1","1","0","LF" 4つのバイトを送信していることを、スコープ上で見ることができますが、私はポート上で01101110を持っていると思います。私はどこでミスをしたのか分かりますか?

SerialPort serialPort; 
DataOutputStream outputStream; 


    void sendeSerialPort(int adresse) 
     { 
      System.out.println("Sende: " + adresse); 
      if (serialPortGeoeffnet != true) 
       return; 
      try { 
       outputStream.writeByte(adresse); 
       } 
      catch (IOException e) { 
      System.out.println("Error when sending"); 
      } 
     } 

はあなたに

編集ありがとう:これは、スコープに次のようになります。

110 sent as int with outputStream.writeByte(int)

+0

を使用する場合(これは、32ビット符号付き量だから)は、Java 'int'は4バイトであり、テキストや改行として出力し、もしあなたがバイトを送るには 'byte'を渡すべきです。また、おそらく 'BinaryOutputStream'を使用しているはずです –

+0

@ElliottFrischバイナリを書くためにDataOutputStreamを考えていますか? –

+0

@ElliottFrisch 'BinaryOutputStream'とは何ですか? – EJP

答えて

0

あなたはDataOutputStream.writeByte(110)でバイトとして110を書くとき、これがあるだけで1バイトを生成しますASCIIのアルファベットn

それだけではPrintStream.println(110)又はPrintWriter.println(110)

関連する問題