可以跟着一起操作。
1 下载串口的jar和dll
附上一波说明
打开
http://fizzed.com/oss/rxtx-for-java
下载RXTX模块
然后解压
里面有这些文件
2 给项目添加外部jar(有eclipse和intellij两种IDE操作方式说明)
2.1 假设你用eclipse
2.2 使用intellij
3 添加dll
将dll文件复制到jdk和jre的bin目录下
扫描二维码关注公众号,回复:
3392198 查看本文章
4 代码
package Test180914;
import gnu.io.CommPortIdentifier;
import gnu.io.PortInUseException;
import gnu.io.SerialPort;
import gnu.io.UnsupportedCommOperationException;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Enumeration;
public class Test180914 {
//简单的向串口发送一段数据的方法
public static void main(String[] args) {
//枚举类型,获取所有的通行端口,包括232(PORT_SERIAL)、485、并口等等
Enumeration enumeration= CommPortIdentifier.getPortIdentifiers();
while (enumeration.hasMoreElements()){
//判断enumeration里面是否有更多的元素
//获取下一个元素,该元素包含某个通信端口的所有信息
CommPortIdentifier commPortIdentifier=
(CommPortIdentifier) enumeration.nextElement();
//如果该端口的类型是串口
if (commPortIdentifier.getPortType()==CommPortIdentifier.PORT_SERIAL){
//判断该串口的名称
if (commPortIdentifier.getName().equals("COM2")){
try {
//打开串口,获得该串口的serialPort对象
SerialPort serialPort=
(SerialPort) commPortIdentifier.open("",2000);
//设置该串口参数,9600,8,1,n
serialPort.setSerialPortParams(9600,8,1,0);
//获取输出流,利用输出流发送数据
OutputStream outputStream=serialPort.getOutputStream();
outputStream.write("Hello World!".getBytes());
//一定要关闭串口,否则会阻塞该串口,直到你关闭程序
serialPort.close();
outputStream.close();
} catch (PortInUseException e) {
System.out.println("PortInUseException抛出,串口被使用");
e.printStackTrace();
} catch (UnsupportedCommOperationException e) {
System.out.println("UnsupportedCommOperationException抛出");
e.printStackTrace();
} catch (IOException e) {
System.out.println("IOException抛出");
e.printStackTrace();
}
}
}
}
}
}
5 效果
使用虚拟串口软件将COM1和COM2短接,打开串口助手,打开串口1,运行代码即可接收到程序发送的数据。