所以我发现了如何将Arduino连接到我的java程序。但是使用串行连接不会返回任何有用的数据,它的格式错误,或者只是将其作为一个盒子发送。我已经看过这里早期发布的相关问题,但没有一个提示似乎有所帮助。那么有谁知道如何使用串口在Arduino和计算机之间发送数据?
这是我正在使用的代码,由此人提供: http://silveiraneto.net/2009/03/01/arduino-and-java/
package serialtalk;
import gnu.io.CommPortIdentifier;
import gnu.io.SerialPort;
import java.io.InputStream;
import java.io.OutputStream;
import processing.app.Preferences;
public class Main {
static InputStream input;
static OutputStream output;
public static void main(String[] args) throws Exception{
Preferences.init();
System.out.println("Using port: " + Preferences.get("serial.port"));
CommPortIdentifier portId = CommPortIdentifier.getPortIdentifier(
Preferences.get("serial.port"));
SerialPort port = (SerialPort)portId.open("serial talk", 4000);
input = port.getInputStream();
output = port.getOutputStream();
port.setSerialPortParams(Preferences.getInteger("serial.debug_rate"),
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
while(true){
while(input.available()>0) {
System.out.print((char)(input.read()));
}
}
}
}
Arduino是这样的: http://www.arduino.cc/en/Main/ArduinoBoardDuemilanove
代码只是接收一个数字,并从我的Arduino中确定它应该发回的模拟读数。
答案 0 :(得分:1)
处理串行连接时,请确保以下要点:
以上所有都会导致奇怪的东西从Java端的com端口出来。一旦掌握了这一点,就会变得更容易。
我个人最喜欢的图书馆here。