【IntelliJ IDEA 2019.2】java读取发送pc串口数据
发布日期:2021-05-13 00:03:26 浏览次数:26 分类:精选文章

本文共 2752 字,大约阅读时间需要 9 分钟。

以下是优化后的内容:


Java 串口开发指南及常见问题解决方案

在进行Java串口开发之前,请按照以下步骤准备好环境和依赖:

1. 安装必要软件

  • Java Development Kit (JDK): 请安装最新版本的Java开发工具。
  • JavaSerialComm Library: 添加适用于您操作系统的Java串口通信库,例如RXTX库。

2. 配置依赖库

  • rxtxserial.dllrxtxParallel.dll 放置在能够被Java搜索的目录中,如C:\Program Files\Java\lib\ext。
  • 如果使用RXTX通信库,将 RXTXcomm.jar 放置在 C:\Program Files\Java\jre/lib/ext 中。

3. 创建开发项目

  • 打开IntelliJ IDEA或其他IDE,创建新的Java项目。
  • 在项目根目录下新建 lib 文件夹,并将相关的库文件(如 RXTXcomm.jar)放入其中。通过右键选择“添加库文件”完成依赖配置。

4. 编写测试代码

import java.util.*;  
import gnu.io.*;
public class Test {
public static void main(String[] args) {
Enumeration
portList = CommPortIdentifier.getPortIdentifiers();
while (portList.hasMoreElements()) {
CommPortIdentifier portIp = portList.nextElement();
System.out.println("可用串口:" + portIp.getName());
}
}
}

5. 运行与调试

  • 确保串口被正确打开并设置正确的波特率。
  • 注意:Avoid running JAR files directly, ensure the Runtime Environment can find the dependent DLL files。

常见问题与解决方案

1. 错误信息:EXCEPTION_ACCESS_VIOLATION

  • 错误描述:可能是由于依赖文件 (rxtxSerial.dllrxtxParallel.dll) 版本问题或路径错误导致的。
  • 解决方法
  • 确认您使用的 rxtx 库是否支持您操作系统的位长(32位或64位)。
  • 检查DLL文件是否被正确放置在可搜索目录中。
  • 如果问题依旧,您可以尝试从指定URL重新下载最新版本:RXTX下载链接

2. 包路径错误

  • 错误描述:某些依赖包未被正确添加至项目路径中。
  • 解决方法
    • 确保 RXTXcomm.jar 已被正确添加到项目的 lib 文件夹中。
    • 如果问题依旧,请重新检查 jav732.dll 及相关文件的路径是否正确。

3. serialEvent 事件监听问题

  • 错误描述:可能在监听数据时出现异常。
  • 解决方法
  • 确保串口数据流 (isos) 已被正确初始化。
  • 检查 serialPort.NotifyOnDataAvailable 是否被正确调用。
  • 使用 proper exception handling 对意外情况进行处理。

完整开发示例代码

以下是一个基础的串口通信示例:

import java.awt.*;  
import java.io.*;
import java.util.*;
import gnu.io.*;
public class MySerialPort {
private static InputStream is;
private static OutputStream os;
private static SerialPort serialPort;
private static boolean isOpen = false;
public static void main(String[] args) {
EnumeratePort();
}
private static void EnumeratePort() {
Enumeration
portList = CommPortIdentifier.getPortIdentifiers();
while (portList.hasMoreElements()) {
CommPortIdentifier portIp = portList.nextElement();
System.out.println("发现串口:" + portIp.getName());
openPort(portIp);
}
}
private static void openPort(CommPortIdentifier portIp) {
try {
serialPort = (SerialPort) portIp.open("MyApp", 1000);
is = serialPort.getInputStream();
os = serialPort.getOutputStream();
serialPort.setTimeout(1000);
} catch (PortInUseException e) {
System.out.println("串口已被占用,请尝试下一个!");
}
}
// 您可以根据实际需求添加发送数据和接收数据的方法。
}

运行验证

  • 修改代码中的串口设置,确保波特率与设备一致。
  • 在项目根目录下编译程序,并将输出文件(JAR或类文件)放置在用户桌面上。
  • 双击运行程序,检查是否可以正确识别并连接到串口设备。

  • 如有进一步问题,请参考详细文档或社区资源,例如 RXTX官方文档 或 Java 串口开发相关论坛,继续深入解决问题。

    上一篇:【IntelliJ IDEA 2019.2】延时函数
    下一篇:【IntelliJ IDEA 2019.2】写hello world程序

    发表评论

    最新留言

    感谢大佬
    [***.8.128.20]2025年04月28日 06时52分50秒