共计 2058 个字符,预计需要花费 6 分钟才能阅读完成。
在 Java 中,可以使用 RXTXcomm 库来实现串口通信。下面是一个简单的示例:
-
首先,你需要下载和安装 RXTXcomm 库。你可以在 https://github.com/rxtx/rxtx 找到最新版本的库。
-
导入 RXTXcomm 库到你的 Java 项目中。
-
创建一个新的 Java 类并导入所需的类和包:
import gnu.io.CommPort;
import gnu.io.CommPortIdentifier;
import gnu.io.SerialPort;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
- 在类中定义串口通信的方法:
public class SerialCommunication {private InputStream inputStream;
private OutputStream outputStream;
public void connect(String portName) throws Exception {CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier(portName);
if (portIdentifier.isCurrentlyOwned()) {System.out.println("Error: Port is currently in use");
} else {CommPort commPort = portIdentifier.open(this.getClass().getName(), 2000);
if (commPort instanceof SerialPort) {SerialPort serialPort = (SerialPort) commPort;
serialPort.setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
inputStream = serialPort.getInputStream();
outputStream = serialPort.getOutputStream();
(new Thread(new SerialReader(inputStream))).start();
(new Thread(new SerialWriter(outputStream))).start();} else {System.out.println("Error: Only serial ports are handled by this example.");
}
}
}
public static class SerialReader implements Runnable {private InputStream inputStream;
public SerialReader(InputStream inputStream) {this.inputStream = inputStream;
}
public void run() {byte[] buffer = new byte[1024];
int len = -1;
try {while ((len = this.inputStream.read(buffer)) > -1) {System.out.print(new String(buffer, 0, len));
}
} catch (IOException e) {e.printStackTrace();
}
}
}
public static class SerialWriter implements Runnable {private OutputStream outputStream;
public SerialWriter(OutputStream outputStream) {this.outputStream = outputStream;
}
public void run() {try {int c = 0;
while ((c = System.in.read()) > -1) {this.outputStream.write(c);
}
} catch (IOException e) {e.printStackTrace();
}
}
}
public static void main(String[] args) {try {SerialCommunication serial = new SerialCommunication();
serial.connect("/dev/ttyUSB0"); // Replace with your serial port name
} catch (Exception e) {e.printStackTrace();
}
}
}
- 运行代码,将 "/dev/ttyUSB0" 替换为你的串口名称,然后通过控制台输入和输出与串口进行通信。
请注意,此示例假设你的系统上已经安装并配置了正确的串口驱动程序。
丸趣 TV 网 – 提供最优质的资源集合!
正文完