我只学了几个星期的Java。我的最终目标是让我的Arduino测量一些传感器,并通过USB电缆将结果发送给我的android。不过,我只是想让我的Arduino先在我的计算机上与Java控制台进行通信,然后我发现它基本上是从那里复制和粘贴的。
只要是一个简单的字节,我就可以让我的Arduino和Java控制台相互通信。任何传递给我的二次方程爆炸的结果。
在我的Arduino系列监视器中,我得到了这样的信息:
发动机温度:100 空气温度:95 发动机转速:10000 RPM 车轮速度:每小时30英里
在我的Java控制台中,我得到了以下信息:
正规打印 [B@6f5f6479 ] 字符串 欧元
Ì󀘀 UTF ??3?f3˜??
这是我的阅读器代码:
@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。
发布于 2013-07-30 20:44:42
确保Arduino和android上的串口以相同的速度运行。提供的代码没有显示串行端口是如何定义和打开/启动的,因此不可能知道这是否是问题所在。
在android上显示的字符看起来就像在串行行的两个端点没有进行类似配置时所看到的典型垃圾。
看起来Arduino正确地感觉到了发动机的动力吗?
https://stackoverflow.com/questions/15583823
复制相似问题