我在 SYNC FIFO FT245 模式下使用 FT2232H,我无法让它在 Linux 上运行,我的代码在 Mac OS X 上完美运行,但在 Linux 上却不行。
我已经安装了 libftdi1 和 libftdi-dev 软件包。
代码的相关部分:
#define PID 0x6010
.
.
.
if(vftdic == NULL)
{
this->ftdic = static_cast<struct ftdi_context*>(malloc(sizeof(struct ftdi_context)));
}
else
{
this->ftdic = vftdic;
}
int f;
// Init 1. channel
if (ftdi_init(ftdic) < 0)
{
throw DeviceException("ftdi_init failure\n", FTDI_ERROR);
}
ftdi_set_interface(ftdic, INTERFACE_A);
f = ftdi_usb_open(ftdic, 0x0403, PID);
if (f < 0 && (f != -5))
{
//here f is equal to -8 only on Linux
throw DeviceException("Unable to open FTDI device, channel A\n", FTDI_ERROR);
}
这是来自 lsusb 的列表:
Bus 001 Device 005: ID 0403:6010 Future Technology Devices International, Ltd FT2232C Dual USB-UART/FIFO IC
使用的所有硬件都是相同的(MacBook Pro 2010 + 我的带有 ft2232h 的 USB 设备)。