Arduino使用NetBeans与jSerialComm lib进行Java NetBeans串行通信,但输出错误

时间:2019-03-09 16:58:52

标签: java arduino netbeans-8

这是我的代码:

package test1;

/**
 *
 * @author ECS
 */
import com.fazecast.jSerialComm.*;
import java.io.IOException;
import java.io.InputStream;
import java.util.Scanner;


public class Test1 {


    public static void main(String[] args) throws IOException {

        SerialPort ports[]=SerialPort.getCommPorts();
        System.out.println("Select a port: ");
        int i=0;
        for(SerialPort port:ports){
            System.out.println(i++ +". "+ port.getSystemPortName());

        }
        Scanner s=new Scanner(System.in);
        int choosenport=s.nextInt();
        SerialPort port=ports[choosenport-1];
        if(port.openPort())
        {
            System.out.println("Succesfully open port: ");
        }else{
            System.out.println("Unable to open port!");
            return;
        }

        port.setComPortTimeouts(SerialPort.TIMEOUT_SCANNER, 0, 0);

        String newdata=String.valueOf(port.getInputStream());
        Scanner data=new Scanner(newdata);

        System.out.println(data);
        while(data.hasNextLine()){
            System.out.println(data.nextLine());
        }

    }

}

这是在arduino IDE中我的串行监视器的输出。 arduino output

我的java程序的输出是这样的:

Select a port: 
0. COM1
1. COM23
1
Succesfully open port: 
java.util.Scanner[delimiters=\p{javaWhitespace}+][position=0][match valid=false][need input=false][source closed=false][skipped=false][group separator=\,][decimal separator=\.][positive prefix=][negative prefix=\Q-\E][positive suffix=][negative suffix=][NaN string=\Q�\E][infinity string=\Q∞\E]
com.fazecast.jSerialComm.SerialPort$SerialPortInputStream@1405ef7

我真的不知道为什么会这样。

它成功打开了端口,但是由于某种原因,它没有输出arduino的串行监视器输出的内容。我尝试将arduino的串行监视器的输出更改为数字,但始终总是得到相同的结果。我希望有人能启发我。它运行正常,但是输出对我来说是真正的奥秘。我是编程方面的初学者,几天前我才刚接触到这个jSerialComm库。我将非常感谢您的任何建议。

0 个答案:

没有答案