如何将命令发送到串口连接的嵌入式PC

时间:2011-08-04 08:56:33

标签: java serial-port rxtx

我想将命令发送到通过串口连接到我的电脑的嵌入式电脑......这是我使用的代码......

public class Write {

static Enumeration portList;
static CommPortIdentifier portId;
static String messageString = "Hello, world!\n";
static SerialPort serialPort;
static OutputStream outputStream;

public static void main(String[] args) {
    portList = CommPortIdentifier.getPortIdentifiers();
    while (portList.hasMoreElements()) {
        portId = (CommPortIdentifier) portList.nextElement();
        if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
            if (portId.getName().equals("COM1")) {
                try {
                    serialPort = (SerialPort) portId.open("SimpleWriteApp", 2000);
                    System.out.println("openning the port...");
                } catch (PortInUseException e) {
                }
                try {
                    outputStream = serialPort.getOutputStream();
                    System.out.println("sending the command...");
                } catch (IOException e) {
                }
                try {
                    serialPort.setSerialPortParams(9600,
                            SerialPort.DATABITS_8,
                            SerialPort.STOPBITS_1,
                            SerialPort.PARITY_NONE);

                } catch (UnsupportedCommOperationException e) {
                }
                try {
                    outputStream.write(messageString.getBytes());
                    serialPort.close();
                } catch (IOException e) {
                }
            }
        }
    }
}

}

此代码是否正确,或者应该对此代码进行一些修改....

1 个答案:

答案 0 :(得分:0)

如果它有效,那么我看不出任何明显的错误!我唯一指出的是,最好在最后一个块中放置关闭语句(例如当你在最后关闭串口时),这样它们总是被执行(除了VM终止)。目前如果<{1}}抛出了一个异常,outputStream.write(messageString.getBytes());方法不会被执行。

你也不应该忽略异常,至少要做close()以确保没有发生任何事情。