Java串口操作详解
作者:技术拾光时间:2026-07-05 06:29:01浏览:85
借助rxtx库实现Java串口操作,流程包括引入Maven依赖、动态获取端口并配置连接(波特率9600)、设置变长读写器(标识符{})、注册字符串解析器和默认数据监听器,可选添加字节处理器和对象处理器,支持自定义扩展。
串口通信在嵌入式开发、工业控制等领域一直是一项常见需求。Java生态中虽然不像C/C++那样直接,但借助一些封装良好的库,操作起来也相当便利。本文以rxtx这个轻量库为例,快速梳理从依赖引入到数据收发的几个关键步骤,覆盖基本读写、解析和事件监听,为初学者提供一个可直接使用的模板。
串口操作简介
使用方法
在Spring Boot项目中直接引入以下Maven依赖即可:
cn.qqhxj.common
rxtx
1.3.1-RELEASE
接下来是关键的串口配置。端口名可设置为 COM1 等格式,也可以通过 SerialUtils.getCommNames() 动态获取可用端口列表。

连接串口,波特率设为9600:
SerialPort connect = SerialUtils.connect(portName, 9600);
连接建立后,需要配置串口读写器。这里使用变长读取器,指定起始和结束标识符为 { 和 }:
SerialContext.setSerialReader(new VariableLengthSerialReader('{', '}'));
接着添加数据解析器——以字符串解析器为例:
SerialContext.getSerialDataParserSet().add(new StringSerialDataParser());
同时设置事件监听,使用默认数据监听器:
SerialContext.setSerialPortEventListener(new DefaultSerialDataListener());
若需要对原始byte数组进行额外处理(如日志打印),可注册一个byte数据处理器(可选):
SerialContext.setSerialByteDataProcessor(new SerialByteDataProcessor() {
@Override
public void process(byte[] bytes) {
System.out.println(bytes);
}
});
如需自定义串口数据解析器,实现 SerialDataParser 接口即可:
SerialContext.getSerialDataParserSet().add(new SerialDataParser
若有对应的数据解析器,还可以注册一个串口对象处理器(可选),用于处理解析后的对象:
SerialContext.getSerialDataProcessorSet().add(new SerialDataProcessor() {
@Override
public void process(T t) {
System.out.println(t);
}
});
整个流程的核心步骤为:串口连接 → 读写器配置 → 解析器注册 → 事件绑定,每一层均支持自定义扩展。这种设计既保持了默认开箱即用的特点,又为开发者提供了足够的灵活性。若您刚开始接触Java串口编程,按照上述步骤操作,很快就能在控制台看到数据输出。
