• 大小: 240KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-04-07
  • 语言: Java
  • 标签: java  串口  

资源简介

利用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\Mainframe.java
     目录           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

评论

共有 条评论