我现在刚刚学习 Java 大约几个星期。我的最终目标是让我的 Arduino 测量一些传感器并通过 USB 电缆将结果发送到我的 android。但是,我只是想让我的 Arduino 先与计算机上的 Java 控制台通信,然后我认为它几乎是从那里复制和粘贴的。
只要是一个简单的字节,我就可以让我的 Arduino 和 Java 控制台相互通信。任何传递给我的结果都是二次方程爆炸的结果。
在我的 Arduino 串行监视器中,我得到了这个:
发动机温度:100
空气温度:95
发动机转速:10000 RPM
轮速:30 MPH
在我的 Java 控制台中,我得到了这个:
正常
打印 [B@6f5f6479字符串
€∼3Àf`Ìó€∼€UTF
??3?f`??
这是我的阅读器代码:
@Override
public void serialEvent(SerialPortEvent arg0) {
byte[] readBuffer = new byte[1000];
try {
int availableBytes = input.available();
if (availableBytes > 0) {
// Read the serial port
input.read(readBuffer, 0, availableBytes);
// Print it out
System.out.println("Normal println");
System.out.println(readBuffer);
System.out.println("\nString");
System.out.println(new String(readBuffer, 0, availableBytes));
System.out.println("\nUTF");
System.out.println(new String(readBuffer,"UTF-8"));
System.out.println("\nDone");
}}
catch (IOException e) {
}
}
输入是我的输入流。