打开和关闭串行端口

时间:2011-08-03 09:45:21

标签: java serial-port

我正在尝试连接到Serial Port ...但是在我第一次打开Serial Port时。我不能再打开它,我试着申请。这是我的代码:

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);
                } catch (PortInUseException e) {}
                try {
                    outputStream = serialPort.getOutputStream();
                } catch (IOException e) {}
                try {
                    serialPort.setSerialPortParams(9600,
                        SerialPort.DATABITS_8,
                        SerialPort.STOPBITS_1,
                        SerialPort.PARITY_NONE);
                } catch (UnsupportedCommOperationException e) {}
                try {
                    outputStream.write(messageString.getBytes());
                } catch (IOException e) {}
            }
        }
    }
}

我想关闭该端口,以便将其用于其他任务。

2 个答案:

答案 0 :(得分:4)

根据java Communication API,你只需要close()你的串口对象:

serialPort.close();

close()方法来自SerialPort超类CommPort

答案 1 :(得分:1)

serialPort.close();适合我。在关闭端口之前,请注意不要再次使用该端口,因为锁定文件将写入/ var / lock Linux目录。在Windows中我认为类似的东西。在重新打开端口之前必须删除此文件。否则将发生nullPointerException。关闭端口会删除此文件。