资源简介
利用java编写的全套串口通信代码,已测试无错误,直接导入eclipse使用。
代码片段和文件信息
package com.yang.serialport.manager;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.TooManyListenersException;
import com.yang.serialport.utils.ArrayUtils;
import com.yang.serialport.utils.ShowUtils;
import gnu.io.CommPort;
import gnu.io.CommPortIdentifier;
import gnu.io.NoSuchPortException;
import gnu.io.PortInUseException;
import gnu.io.SerialPort;
import gnu.io.SerialPortEvent;
import gnu.io.SerialPortEventListener;
import gnu.io.UnsupportedCommOperationException;
/**
* 串口管理
*
* @author yangle
*/
@SuppressWarnings(“all“)
public class SerialPortManager {
/**
* 查找所有可用端口
*
* @return 可用端口名称列表
*/
public static final ArrayList findPorts() {
// 获得当前所有可用串口
Enumeration portList = CommPortIdentifier.getPortIdentifiers();
ArrayList portNameList = new ArrayList();
// 将可用串口名添加到List并返回该List
while (portList.hasMoreElements()) {
String portName = portList.nextElement().getName();
portNameList.add(portName);
}
return portNameList;
}
/**
* 打开串口
*
* @param portName
* 端口名称
* @param baudrate
* 波特率
* @return 串口对象
* @throws PortInUseException
* 串口已被占用
*/
public static final SerialPort openPort(String portName int baudrate) throws PortInUseException {
try {
// 通过端口名识别端口
CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier(portName);
// 打开端口,并给端口名字和一个timeout(打开操作的超时时间)
CommPort commPort = portIdentifier.open(portName 2000);
// 判断是不是串口
if (commPort instanceof SerialPort) {
SerialPort serialPort = (SerialPort) commPort;
try {
// 设置一下串口的波特率等参数
// 数据位:8
// 停止位:1
// 校验位:None
serialPort.setSerialPortParams(baudrate SerialPort.DATABITS_8 SerialPort.STOPBITS_1
SerialPort.PARITY_NONE);
} catch (UnsupportedCommOperationException e) {
e.printStackTrace();
}
return serialPort;
}
} catch (NoSuchPortException e1) {
e1.printStackTrace();
}
return null;
}
/**
* 关闭串口
*
* @param serialport
* 待关闭的串口对象
*/
public static void closePort(SerialPort serialPort) {
if (serialPort != null) {
serialPort.close();
}
}
/**
* 往串口发送数据
*
* @param serialPort
* 串口对象
* @param order
* 待发送数据
*/
public static void sendToPort(SerialPort serialPort byte[] order) {
OutputStream out = null;
try {
out = serialPort.getOutputStream();
out.write(order);
out.flush();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (out != null) {
out.close();
out = null;
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 从串口读取数据
*
* @param serialPort
* 当前已建立连接的SerialPort对象
* @return 读取到的数据
*/
public static byte[] readFromPort(SerialPort serialPort) {
InputStream in = null;
byte[] byt
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-06-05 08:00 SerialPortDemo-master\
文件 404 2018-06-05 08:00 SerialPortDemo-master\.classpath
文件 343 2018-06-05 08:00 SerialPortDemo-master\.fatjar
文件 4 2018-06-05 08:00 SerialPortDemo-master\.gitignore
文件 373 2018-06-05 08:00 SerialPortDemo-master\.project
目录 0 2018-06-05 08:00 SerialPortDemo-master\.settings\
文件 85 2018-06-05 08:00 SerialPortDemo-master\.settings\org.eclipse.core.resources.prefs
文件 617 2018-06-05 08:00 SerialPortDemo-master\.settings\org.eclipse.jdt.core.prefs
文件 11357 2018-06-05 08:00 SerialPortDemo-master\LICENSE
文件 605 2018-06-05 08:00 SerialPortDemo-master\README.md
文件 138510 2018-06-05 08:00 SerialPortDemo-master\SerialPortDemo.jar
目录 0 2018-06-05 08:00 SerialPortDemo-master\lib\
文件 2850 2018-06-05 08:00 SerialPortDemo-master\lib\AbsoluteLayout.jar
文件 60984 2018-06-05 08:00 SerialPortDemo-master\lib\RXTXcomm.jar
文件 118103 2018-06-05 08:00 SerialPortDemo-master\lib\swing-layout-1.0.3.jar
目录 0 2018-06-05 08:00 SerialPortDemo-master\src\
目录 0 2018-06-05 08:00 SerialPortDemo-master\src\com\
目录 0 2018-06-05 08:00 SerialPortDemo-master\src\com\yang\
目录 0 2018-06-05 08:00 SerialPortDemo-master\src\com\yang\serialport\
目录 0 2018-06-05 08:00 SerialPortDemo-master\src\com\yang\serialport\manager\
文件 5898 2018-06-05 08:00 SerialPortDemo-master\src\com\yang\serialport\manager\SerialPortManager.java
目录 0 2018-06-05 08:00 SerialPortDemo-master\src\com\yang\serialport\ui\
文件 9056 2018-06-05 08:00 SerialPortDemo-master\src\com\yang\serialport\ui\Mainfr
目录 0 2018-06-05 08:00 SerialPortDemo-master\src\com\yang\serialport\utils\
文件 654 2018-06-05 08:00 SerialPortDemo-master\src\com\yang\serialport\utils\ArrayUtils.java
文件 1442 2018-06-05 08:00 SerialPortDemo-master\src\com\yang\serialport\utils\ByteUtils.java
文件 1455 2018-06-05 08:00 SerialPortDemo-master\src\com\yang\serialport\utils\ShowUtils.java
相关资源
- mysql数据处理,java用户登录处理
- 法律咨询信息系统(java+jsp+sqlserver)
- Java快速开发平台源码(renren-fast)
- 锐聘学院QST青软JavaWeb十二个打包
- 3.3.6微信支付JAVA版demo
- javaweb网上购物系统源码(附数据库脚
- javaweb校园宿舍系统(附数据库脚本)
- JavaWeb书城项目(附数据库脚本)
- 基于JAVA_JSP电子书系统(源码+数据库
- Java网络编程知识点总结.xmind
- 一站式Java网络编程 BIO-NIO-AIO资料源码
- jsp讲解
- 基于SSH框架的JavaWeb项目—人员信息管
- javaweb实现的邮件收发系统(附数据库
- Java 仿QQ(附客户端以及服务端源码)
- Java TCP IP Socket
- java定时发送邮件(基于quartz)
- Java Swing开发的《星际争霸》游戏
- java+数据库商品交易管理系统(附数据
- 使用java语言编译一个计算器
- java swing工资管理系统(源码+数据库
- JAVALibrary
- 微信企业号回调模式Java版
- 顺丰丰桥接口开发详细教程源码含下
- Java博客概要设计文档
- 药品进销存管理系统(论文范文_JSP
- 奖学金管理系统java+jsp+mysql
- 毕设参考——基于java酒店管理
- Java写的一个简单的字体更改程序
- java8学习教程之lambda表达式的使用方法
评论
共有 条评论