Java 字符串串行通信

Java 字符串串行通信,java,android,serial-port,arduino,Java,Android,Serial Port,Arduino,我现在只学了几周Java。我的最终目标是让我的Arduino测量一些传感器,并通过USB电缆将结果发送给我的android。然而,我只是想让我的Arduino先与我计算机上的Java控制台通信,然后我想它基本上是从那里复制和粘贴的 我可以让我的Arduino和Java控制台彼此通信,只要它是一个简单的字节。任何经过的东西都会给我一个二次方程爆炸的结果 在我的Arduino串行监视器中,我看到: 发动机温度:100 气温:95 发动机转速:10000转/分 车轮速度:30英里/小时 在我的Java

我现在只学了几周Java。我的最终目标是让我的Arduino测量一些传感器,并通过USB电缆将结果发送给我的android。然而,我只是想让我的Arduino先与我计算机上的Java控制台通信,然后我想它基本上是从那里复制和粘贴的

我可以让我的Arduino和Java控制台彼此通信,只要它是一个简单的字节。任何经过的东西都会给我一个二次方程爆炸的结果

在我的Arduino串行监视器中,我看到:

发动机温度:100

气温:95

发动机转速:10000转/分

车轮速度:30英里/小时

在我的Java控制台中,我可以看到:

正常println [B@6f5f6479

串 欧元3欧元

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) {

            }

    }

输入是我的输入流。

确保android上的Arduino和串行端口的速度相同。提供的代码没有显示串行端口是如何定义和打开/启动的,因此无法知道这是否是问题所在

android上显示的字符看起来就像串行线的两个端点配置不相似时看到的典型垃圾


看起来Arduino正确地感应到了引擎的动态?

你看过串行监视器中的Arduino输出了吗?我们知道问题出在Java代码中吗?输入是如何声明的?是的,我在Arduino串行监视器中说的下面贴出了这个消息:我几乎肯定问题出在Java代码中。输入从包java.io.InputStream中声明为InputStream。您可以添加显示如何构造和打开输入的代码吗?查看它如何与串行端口关联将非常有用。