2016-03-31 40 views
0

我在尋找我的問題與Java DataOutputStream類類的解決方案寫完整的整數。DataOutputStream類不上的SerialPort

我想一個8位二進制值發送到微控制器,它應該是它的新地址。所以我試圖使用函數DataOutputStream.writeByte(int arg0);

當我嘗試用下面的代碼發送地址110,我能看到的範圍,即通過一個串口正在發送4個字節的ASCII碼"1","1","0","LF"但我想有端口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

一個java'int'爲4個字節(因爲它是一個32位有符號數量)它只打印它作爲文本和換行;如果你想發送一個字節,你應該傳入一個字節。另外,你應該使用'BinaryOutputStream' –

+0

@ElliottFrisch你是否想過DataOutputStream寫入二進制文件? –

+0

@ElliottFrisch什麼是「BinaryOutputStream」? – EJP

回答

0

當你寫110爲一個字節與DataOutputStream.writeByte(110)這個只產生1個字節是ASCII中的字母n

如果使用PrintStream.println(110)PrintWriter.println(110)