我是Arduino的新手,我喜欢用Java编程。我最近买了一个Arduino Esplora并希望在计算机和Arduino之间来回通信,但是使用下面的代码,我得到了Arduino的初始状态,然后输入流结束,我再也没有得到任何东西。
import java.util.Scanner;
import com.fazecast.jSerialComm.SerialPort;
public class JSerialPortTest {
static SerialPort serialPort;
public static void main(String[] args) {
SerialPort [] ports = SerialPort.getCommPorts();
if (ports.length > 0) {
serialPort = ports[0];
System.out.println("Connected to " + serialPort.getSystemPortName());
}
else {
System.err.println("No SerialPort detected.");
System.exit(0);
}
System.out.println("Opened: " + serialPort.openPort());
new Thread(new Runnable () {
@Override
public void run() {
Scanner scanner = new Scanner(serialPort.getInputStream());
while (true) {
if (scanner.hasNextLine()) {
String input = scanner.nextLine();
System.out.println(" " + input);
}
else System.out.println("empty...");
try {Thread.sleep(500);} catch (InterruptedException e) { e.printStackTrace(); }
}
}
}).start();
}
}
我收到的初始输出(这正是我想要的):
Y:5按钮:Y:5按钮:7 Y:5按钮:操纵杆X:-7 Y:5按钮:操纵杆X:-7 Y:5按钮:操纵杆X:-7 Y:5按钮:操纵杆X:-7 Y:5按钮:操纵杆X:-7 Y:5按钮:
我想知道是否有任何我做错的事情来读取输出并且它们会定期进入,或者是否有办法请求另一个输出,例如我收到的输出。