1

所以我发现了如何将 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 发回的模拟读数。

4

1 回答 1

1

在处理串行连接时,请确保以下关键点:

  • 波特率匹配
  • DATABITS 应该匹配
  • STOPBITS 应该匹配
  • PARITY 应该匹配
  • 确保您使用的是正确的电缆(如果需要,请使用 Null 调制解调器)
  • 确保电缆运行不会太长

以上所有可能导致奇怪的东西从 Java 端的 com 端口中出来。一旦你掌握了这个窍门,它就会变得容易得多。

我个人最喜欢的图书馆在这里

于 2010-04-30T14:46:57.787 回答