第一篇文章,所以请随意撕毁我。
尝试将 FT_Open() 用于 FTDI 设备。此函数用于 FTDI 驱动程序的示例“读取”程序,目前在该程序中失败。我在树莓派 4 上运行它,但也在尝试在 Ubuntu 上出现同样的错误。
在这两个设备上,在 lsusb 的结果中都可以找到 FTDI,显示我需要连接的序列号。我尝试使用通过端口号打开的 FT_Open(),但这不起作用,返回 FT_DEVICE_NOT_FOUND 的 ftStatus 代码。
在运行示例“读取”程序时,我尝试使用 sudo 来更正此问题,但这不起作用,但作为对先前问题的修复被提及。
这是正在打印的代码和错误消息。这与我的笔记本电脑和树莓派上的代码相同,它们都会导致相同的问题。
if(ftStatus != FT_OK) {
/*
This can fail if the ftdi_sio driver is loaded
use lsmod to check this and rmmod ftdi_sio to remove
also rmmod usbserial
*/
printf("FT_Open(%d): %d failed\n", iport, ftStatus);
return 1;
}
我希望这甚至不会打印,但是目前我得到了
FT_Open(6): 2 failed.
关于做什么的任何想法?此 FTDI 设备的 productId 不同,因为它实际上是 PLMS Developments 销售的 Nistune 咨询电缆。我正在尝试通过 Linux 连接到它,目前仅支持 Windows。
编辑:好的,所以在将我正在使用的 FT232R 芯片上的 EEPROM 重新编程为默认设置后,我确实最终让它工作了。
但是我正在尝试这样做而不需要这样做。我想为芯片使用默认的 vendorID 和不同的 productID。以前,每次我拔掉设备时,它都会重新加载 ftdi_sio 和 usbserial 模块。这将导致它永远无法正确连接。正如我在其他问题中看到的那样,这可以解决。
现在我需要找到一种在 Linux 驱动程序软件中接受自定义产品 ID 的方法。我尝试更改所有似乎相关的信息,但它再次无法识别该设备。