首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jSSC检测不到Com端口

使用jSSC检测不到Com端口
EN

Stack Overflow用户
提问于 2017-09-03 05:16:04
回答 2查看 1.8K关注 0票数 1

我正在尝试在java应用程序中借助Com端口来实现数据传输。首先,我决定像这样创建SerialPort对象。

代码语言:javascript
复制
 SerialPort serialPort = new SerialPort("COM1");

 try {
        serialPort.openPort();
 } catch (SerialPortException ex) {
        ex.printStackTrace();
 }

但是,有一个jssc.SerialPortException:端口名称- COM1;方法名称- openPort();异常类型-未找到端口。

然后我试着确定,我有哪些com端口:

代码语言:javascript
复制
 String[] portNames = SerialPortList.getPortNames();
    for (int i = 0; i < portNames.length; i++) {
        System.out.println(portNames[i]);
    }

结果令人遗憾: portNames是空的。

你能给我一些建议吗?

EN

回答 2

Stack Overflow用户

发布于 2017-11-16 00:31:47

我在Windows中检查了这段代码,它没有问题:我的USB-to-COM适配器在系统中变成了COM4。

代码语言:javascript
复制
import jssc.SerialPort;
import jssc.SerialPortException;
import jssc.SerialPortList;

public class Main {
    public static void main(String[] args) {
        SerialPort serialPort;
        serialPort = new SerialPort("COM4");

        try {
            serialPort.openPort();
        } catch (SerialPortException ex) {
            ex.printStackTrace();
        }

        String[] portNames = SerialPortList.getPortNames();
        for (int i = 0; i < portNames.length; i++) {
            System.out.println(portNames[i]);
        }
    }
}

我还去设备管理器检查COM端口。再说一次,如果topic starter的"portNames‘s“也许是设备驱动程序的问题。他应该检查那里。

票数 0
EN

Stack Overflow用户

发布于 2017-12-04 14:21:53

有各种各样的方法来处理这个问题。

  1. 当应用程序启动时,循环查找可用的COM端口,然后仅在找到端口时才打开该端口。您还可以添加延迟,因为Windows需要一些时间来检测和激活COM端口以供使用。当我们插入USB-UART时,Windows加载驱动程序并分配一个COM端口号。这意味着如果我们每次都将相同的模块插入到相同的物理端口,你将得到COM4。如果你想做一些比更健壮的解决方案,要么自己写,要么使用一些提供

-

  1. 热插拔检测的库。因此,当我们插入USB-UART模块时,这个库会告诉我们分配了哪个端口号,然后我们从应用程序中打开它。我知道的一个这样的库是SerialPundit
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46018263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档