gpt4 book ai didi

java - 在 linux 上与 DLP-IO20(使用 FTDI 芯片)通信

转载 作者:行者123 更新时间:2023-11-30 11:38:12 27 4
gpt4 key购买 nike

我正在尝试与 Linux (ubuntu) 上的 DLP-IO20 板进行通信,但每次都出现错误。同样的程序在windows下运行良好。

为了与开发板通信,我首先安装了所有的FTDI驱动程序,然后生成了一个用于linux的库libjd2xx.so

现在,当我尝试运行 JD2XX.java 文件的主程序时,出现以下错误:

index: 0, flags: 0x0, type: 0x5, id: 0x4036001, location: 0x204, serial: 12345678, description: DLP-IO20, handle: 0x0 Exception in thread "main" java.io.IOException: invalid handle (1)

如您所见,程序读取了电路板信息,但是当它尝试向电路板发送命令时,抛出了上述异常。引发异常的行是以下代码中的最后一行:

 DeviceInfo di = jd.getDeviceInfoDetail(0);
System.out.println(di.toString());
jd.open(0);
String msg = "Hello dude. This is the message.";
int ret = jd.write(msg.getBytes());

有什么建议吗?

最佳答案

以下不是 Java 答案,而是说明如何在不安装任何驱动程序的情况下非常简单直接地与 DLP-IO8 通信,也许这对您的 DLP-IO20 有帮助

在 linux 上,设备由文件抽象(不像在 Windows 上,您必须调用 .dll 的函数才能访问设备)。

因此,当我将 DLP-IO8 插入 USB 端口时,会出现 /dev/ttyUSB0 文件。 (它可能会有所不同,因此您可以在终端中运行 dmesg,它会显示所有连接/断开的 USB 设备的日志及其位置,以便您推断出 DLP-IO8 的位置)

现在您不需要任何驱动程序或任何东西。 /dev/ttyUSB0 被识别并与您的 DLP-IO20 相对应,所以您可以开始了,您可以写入/读取 /dev/ttyUSB0 以写入/读取您的 DLP-IO8。

因此根据 DLP 文档,您必须以 115200 的波特率进行通信。您可以设置此波特率值:

sudo stty -F /dev/ttyUSB0 115200

还是从 DLP 文档中可以看出,如果要获取 channel 1 上的电压值,则必须将 ascii 字符 'Z' 发送到 DLP-IO8。所以打开两个终端,在其中一个运行:

sudo cat /dev/ttyUSB0

为了查看板返回了什么。使用另一个终端运行:

echo -en '\x5A' > /dev/ttyUSB0

为了发送字符'Z'(它的ascii码是十六进制的5A)。现在您应该在第一个终端看到您的电压值。

因此,如果您不知道如何使用纯 Java,您可以随时从 Java 执行这些系统命令。

关于java - 在 linux 上与 DLP-IO20(使用 FTDI 芯片)通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13701617/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com