Java串口通信
warning:
这篇文章距离上次修改已过192天,其中的内容可能已经有所变动。
在Java中,可以使用javax.comm
库或者jSerialComm
库来进行串口通信。以下是使用jSerialComm
库进行串口通信的简单示例。
首先,添加jSerialComm
依赖到你的项目中。如果你使用Maven,可以在pom.xml
中添加如下依赖:
<dependency>
<groupId>com.fazecast</groupId>
<artifactId>jSerialComm</artifactId>
<version>2.9.0</version>
</dependency>
以下是一个简单的示例,它列举了可用的串口,发送数据到串口,并从串口接收数据:
import com.fazecast.jSerialComm.SerialPort;
public class SerialExample {
public static void main(String[] args) {
// 列举所有可用的串口
SerialPort[] commPorts = SerialPort.getCommPorts();
for (SerialPort port : commPorts) {
System.out.println(port.getSystemPortName());
}
// 打开串口,这里的"COM0"是串口名,需要替换为你的实际串口名
SerialPort serialPort = SerialPort.openPort("COM0");
try {
// 配置串口参数:波特率9600,8数据位,1个停止位,无校验位
serialPort.setComPortParameters(9600, 8, 1, 0);
// 输入缓冲区大小
serialPort.setComPortTimeouts(SerialPort.TIMEOUT_READ_SEMI_BLOCKING, 0, 0);
// 发送数据到串口
String messageToSend = "Hello Serial Port\n";
serialPort.writeBytes(messageToSend.getBytes(), messageToSend.length());
// 从串口读取数据
byte[] readBuffer = new byte[1024];
int bytesRead = serialPort.readBytes(readBuffer, readBuffer.length);
if (bytesRead > 0) {
String messageReceived = new String(readBuffer, 0, bytesRead);
System.out.println("Message received: " + messageReceived);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭串口
serialPort.closePort();
}
}
}
请确保在执行上述代码前,串口设备已经连接并打开,波特率、数据位、停止位和校验方式与你的硬件设备相匹配。
评论已关闭