Java 串口双向通信

Java 串口双向通信,java,core,Java,Core,大家好,我是java中的begginer,在我的项目中,数据记录器连接到com端口,我必须向端口发送15个整数值,然后其他设备将返回15作为响应,现在我正在向outputstream写入,但没有收到响应。请帮助我解决此问题。(我使用的是javax.com包) 感谢您的回复您还必须获得InputStream,您无法从OutputStream读取数据。还是我遗漏了什么 另外,请记住在写入输出后执行OutputStream.flush(),否则数据可能会被缓冲以稍后发送-如果响应者正在等待数据,则这很

大家好,我是java中的begginer,在我的项目中,数据记录器连接到com端口,我必须向端口发送15个整数值,然后其他设备将返回15作为响应,现在我正在向outputstream写入,但没有收到响应。请帮助我解决此问题。(我使用的是javax.com包)


感谢您的回复

您还必须获得InputStream,您无法从OutputStream读取数据。还是我遗漏了什么

另外,请记住在写入输出后执行OutputStream.flush(),否则数据可能会被缓冲以稍后发送-如果响应者正在等待数据,则这很可能是出现问题的地方


话虽如此,javax.comm包确实很旧。上次我使用它时,它几乎被Sun弃用,或者至少没有以任何方式维护。您可能想看看其他的解决方案(我想到了)。

试试下面的示例代码

public static void init(String port) {
portList = CommPortIdentifier.getPortIdentifiers();
while (portList.hasMoreElements()) {
portId = (CommPortIdentifier) portList.nextElement();
if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL){
System.out.println(portId.getName());
    if (portId.getName().equals(port)) {



try {sPort = (SerialPort) portId.open("PORT_NAME", 2000);
             reader = new sms();
             break;
            } 
        catch (Exception e) { System.out.println(e);continue;}
   }
}
}

使用com端口名调用init()方法(如COM15、COM11、COM12等)检查所连接的设备com端口