Java 串口通讯 Demo
发布人:shili8
发布时间:2025-02-05 12:08
阅读次数:0
**Java串口通讯 Demo**
### 前言在实际开发中,串口通讯是非常常见的需求之一。通过串口,可以实现设备之间的数据传输,这样可以减少系统的复杂性,并且提高了系统的可靠性和实时性。在 Java 中,我们可以使用 `SerialPort` 类来实现串口通讯。
### 环境准备在开始编写代码之前,我们需要准备好以下环境:
* JDK1.8 或以上版本* SerialPort 类所需的库(通常已经包含在JDK中)
*一个支持串口通信的设备(例如:Arduino、ESP32等)
### Java串口通讯 Demo####依赖项我们需要添加以下依赖项到我们的 `pom.xml` 文件中:
xml<dependency> <groupId>com.fazecast</groupId> <artifactId>jSerialComm</artifactId> <version>2.8.0</version> </dependency>
####串口通讯类我们创建一个名为 `SerialPortUtil` 的类来实现串口通讯:
javaimport com.fazecast.jSerialComm.SerialPort; import com.fazecast.jSerialComm.SerialPortDataEvent; import java.io.IOException; import java.util.Arrays; public class SerialPortUtil { private static final int BAUD_RATE =9600; // 波特率 private static final int DATA_BITS =8; // 数据位数 private static final int STOP_BITS = SerialPort.ONE_STOP_BIT; // 停止位数 private static final int PARITY = SerialPort.NO_PARITY; // 校验位 public static void main(String[] args) { // 打开串口 SerialPort serialPort = openSerialPort(); if (serialPort != null) { try { //读取数据 byte[] data = readData(serialPort); System.out.println("Received Data: " + Arrays.toString(data)); // 写入数据 writeData(serialPort, "Hello, World!".getBytes()); // 关闭串口 serialPort.close(); } catch (IOException e) { System.err.println("Error occurred while communicating with the device: " + e.getMessage()); } } } private static SerialPort openSerialPort() { for (SerialPort port : SerialPort.getCommPorts()) { if (port.getSystemPortName().equals("/dev/ttyUSB0")) { //串口名称 return port; } } return null; } private static byte[] readData(SerialPort serialPort) throws IOException { int bytesRead = serialPort.readBytes(serialPort.getInputBuffer(),1024); if (bytesRead >0) { return Arrays.copyOfRange(serialPort.getInputBuffer(),0, bytesRead); } return null; } private static void writeData(SerialPort serialPort, byte[] data) throws IOException { int bytesWritten = serialPort.writeBytes(data, data.length); if (bytesWritten >0) { System.out.println("Sent Data: " + Arrays.toString(Arrays.copyOfRange(data,0, bytesWritten))); } } }
#### 使用说明1. 将 `SerialPortUtil` 类中的串口名称替换为实际的串口名称。
2. 运行 `SerialPortUtil` 类的 `main` 方法。
3. 在串口设备上发送数据(例如:使用 Arduino 或 ESP32 等)。
4. 在 `SerialPortUtil` 类中读取和写入数据。
### 总结在本文中,我们介绍了如何使用 Java 实现串口通讯。我们创建了一个名为 `SerialPortUtil` 的类来实现串口通讯,并提供了示例代码。通过阅读本文,开发者可以轻松地将串口通讯集成到自己的项目中。