打开FTDI设备并获取错误ftStatus:INVALID_HANDLE

时间:2019-07-03 06:43:18

标签: java ftdi

我尝试通过Mac与Denkovi中继板(FTDI)进行通信。如果我尝试打开FTDevice,我会得到例外:

com.ftdi.FTD2XXException: D2XX error, ftStatus:INVALID_HANDLE

我安装了最新的FTDI驱动程序。

我发现了这篇文章: Using Java to access SainSmart 4 Relay with Mac OS 10.8.5 doesn't work

他们写道,问题出在64位JVM。但这是4年前。现在有解决方案吗?

借助Denkovi原始软件(也包括Java),我可以与开发板通信。但是我只有Jar,所以我看不到代码,他们是怎么做到的。

我的代码:

         public static void main(String[] args) {
    FTDevice usb16Relay;
    List<FTDevice> fTDevices;


   byte[] command = new byte[5];
    try {
            fTDevices = FTDevice.getDevices();
            usb16Relay = fTDevices.get(0);  

            System.out.println(usb16Relay.getDevDescription());
            System.out.println(usb16Relay.getDevID());
            System.out.println(usb16Relay.getDevSerialNumber());

            usb16Relay.open();
            usb16Relay.setBaudRate(9600);
            usb16Relay.setDataCharacteristics(WordLength.BITS_8, StopBits.STOP_BITS_1, Parity.PARITY_NONE);

            command[0]='x';
            command[1]=1;
            command[2]=0;
            command[3]='/';
            command[4]='/';

            usb16Relay.write(command);
            usb16Relay.close();
    } catch (FTD2XXException ex) {
       ex.printStackTrace();
    }
}

0 个答案:

没有答案