最近接触到了串口及其读写,在此记录java进行串口读写的过程。
1.导入支持java串口通信的jar包:
在maven项目的pom.xml中添加RXTXcomm的依赖 或者 下载RXTXcomm.jar并导入到项目中。
支持Java串口通信操作的jar包,java.comm比较老,而且不支持64位系统,推荐使用Rxtx这个jar包(32位/64位均支持)。
下载地址:
https://files.cnblogs.com/files/Dreamer-1/mfz-rxtx-2.2-20081207-win-x86.zip (32位)
https://files.cnblogs.com/files/Dreamer-1/mfz-rxtx-2.2-20081207-win-x64.zip (64位)
注意:运行过程中抛出 java.lang.UnsatisfiedLinkError 错误或 gnu.io 下的类找不到时,将rxtx解压包中的 rxtxParallel.dll,rxtxSerial.dll 这两个文件复制到 C:\Windows\System32 目录下可解决该错误。
2.编写代码操作串口:
串口必要参数类:包含连接串口所必须的参数,方便在调用串口时设置和传递串口参数
复制代码
/**
-
串口必要参数接收类
-
@author: LinWenLi
-
@date: 2018年7月21日 下午4:30:40
*/
public class ParamConfig {private String serialNumber;// 串口号
private int baudRate; // 波特率
private int checkoutBit; // 校验位
private int dataBit; // 数据位
private int stopBit; // 停止位public ParamConfig() {}
/**
- 构造方法
- @param serialNumber 串口号
- @param baudRate 波特率
- @param checkoutBit 校验位
- @param dataBit 数据位
- @param stopBit 停止位
*/
public ParamConfig(String serialNumber, int baudRate, int checkoutBit, int dataBit, int stopBit) {
this.serialNumber = serialNumber;
this.baudRate = baudRate;
this.checkoutBit = checkoutBit;
this.dataBit = dataBit;
this.stopBit = stopBit;
}
getter()…
setter()…
}
复制代码
串口操作类:(其中包含的CustomException是自定义异常类,仅用于抛出异常原因。)
复制代码
import gnu.io.CommPortIdentifier;
import gnu.io.PortInUseException;
import gnu.io.SerialPort;
import gnu.io.SerialPortEvent;
import gnu.io.SerialPortEventListener;
import gnu.io.UnsupportedCommOperationException;
/**
-
串口参数的配置 串口一般有如下参数可以在该串口打开以前进行配置: 包括串口号,波特