当前位置:实例文章 » JAVA Web实例» [文章]Java 串口通讯 Demo

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` 的类来实现串口通讯,并提供了示例代码。通过阅读本文,开发者可以轻松地将串口通讯集成到自己的项目中。

相关标签:java开发语言
其他信息

其他资源

Top