本文要实现的是利用java读取串口数据,我这边是读取的Arduino开发板的数据
1、下载依赖
下载地址RXTX for Java (fizzed.com)http://fizzed.com/oss/rxtx-for-java
2、将下载的依赖解压存放
可以看到在rxtx文档介绍中已经介绍了应该咋那么存放文件
rxtxParallel.dll
,rxtxSerial.dll
复制到C:\Program Files\Java\jdk1.8.0_112\jre\bin
3、新建Java项目
将RXTXcomm.jar 导入项目中。
IDEA设置:Ctrl+Shift+ALt+S——>选择Libraries——>左上角+号找到jar包所在位置添加应用。
4、新建SerialReader
package com.zxc.websocket;
import gnu.io.CommPortIdentifier;
import gnu.io.SerialPort;
import java.io.InputStream;
import java.util.Scanner;
import java.util.Timer;
import java.util.TimerTask;
public class SerialReader {
public static void main(String[] args) throws Exception {
CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier("COM3");
SerialPort serialPort = (SerialPort) portIdentifier.open("SerialReader", 2000);
serialPort.setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
InputStream input = serialPort.getInputStream();
Timer timer = new Timer();
TimerTask task = new TimerTask() {
@Override
public void run() {
try {
Scanner scanner = new Scanner(input);
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
System.out.println(line);
}
} catch (Exception e) {
System.err.println("从串口读取失败:" + e.getMessage());
}
}
};
// 每隔1秒执行一次任务x
timer.scheduleAtFixedRate(task, 0, 1000);
}
}
运行即可
注意:运行时串口不得被其他软件或者硬件占用。不然读取会报错。
下篇给大家分享如何利用websocket将串口数据进行传输