将字符串发送到串行端口作为嵌入式设备的命令

时间:2014-02-18 15:43:30

标签: java string serial-port rxtx

我正在开发一个涉及嵌入式设备的项目。我应该向此设备发送命令。该命令是一个字符串:“LAMP1_ON \ r \ n”;

我正在使用带有java的RXTX并通过串口发送数据。但是当我发送String命令时,设备会收到“AMP_N”和其他一些分散的字符串。

我不知道为什么会这样,以及我如何解决它。

我的代码如下:

public class SerialWriter implements Runnable {

    OutputStream out;
    String str;
    public SerialWriter(OutputStream out, String str) {
        this.out = out;
        this.str = str;
    }

    public void run() {
        try {

            byte[] array = this.str.getBytes();

                this.out.write(array);
                this.out.flush();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

我希望通过write方法将字符串发送到端口。它有效,但它不发送this.str中包含的确切字符串,而是发送“AMP_N”和“AMP”以及分散的字符串

1 个答案:

答案 0 :(得分:0)

我已经看到了这个问题。我没有正确设置FLOWCONTROL属性。谢谢。这段代码工作正常

serialPort.setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
            serialPort.setFlowControlMode(SerialPort.FLOWCONTROL_NONE);