【发布时间】:2013-03-23 05:44:56
【问题描述】:
我现在刚刚学习 Java 大约几个星期。我的最终目标是让我的 Arduino 测量一些传感器并通过 USB 电缆将结果发送到我的 android。但是我只是想让我的 Arduino 先与我计算机上的 Java 控制台通信,然后我认为它几乎是从那里复制和粘贴的。
只要是一个简单的字节,我就可以让我的 Arduino 和 Java 控制台相互通信。任何传递给我的结果都是二次方程爆炸的结果。
在我的 Arduino 串行监视器中,我得到了这个:
发动机温度:100
空气温度:95
发动机转速:10000 RPM
轮速:30 英里/小时
在我的 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) {
}
}
输入是我的 InputStream。
【问题讨论】:
-
您查看过串行监视器中的 Arduino 输出吗?我们是否知道问题出在 Java 代码中?
input是如何声明的? -
是的,我把它贴在我说“在我的 Arduino 串行监视器中我得到这个:”的下面,我几乎可以肯定问题出在 java 代码中。输入被声明为 java.io.InputStream 包中的 InputStream
-
你能添加代码显示
input是如何构造和打开的吗?看看它如何与您的串行端口关联会很有用。
标签: java android serial-port arduino