【发布时间】:2021-03-13 14:40:39
【问题描述】:
我的 FTD2xx 驱动程序有问题。 我在 Fedora 26(64 位)和“2232H”设备的 FTD2xx 的最新版本中使用 QT(C++)。 构建方法也是:
qmake /Address/ProjectName.pro -r -spec linux-g++ CONFIG+=debug CONFIG+=qml_debug
问题:
FT_Status 在 ft_openex(....) 命令中返回 0(FT_OK),但对于 FTD2xx lib 的其他函数返回 none_zero(FT_OK); 我的一段代码:
FT_HANDLE ftH;
FT_STATUS ftStatus;
ftStatus = FT_OpenEx(const_cast<char*>("MYDevName"), FT_OPEN_BY_SERIAL_NUMBER, &ftH);
std::cout<<"FTST open:"<< ftStatus<<std::endl;
char a[10];DWORD b;
ftStatus = FT_SetBitMode(&ftH,0xff,0);
std::cout<<"FTST RESET:"<< ftStatus<<std::endl;
ftStatus = FT_SetBitMode(&ftH,0xff,0x40);
std::cout<<"FTST SPEED:"<< ftStatus<<std::endl;
ftStatus = FT_Close(&ftH);
std::cout<<"FTST CLOSE:"<< ftStatus<<std::endl;
And output :
FTST open:0
FTST RESET:1
FTST SPEED:1
FTST CLOSE:1
ftStatus =1 ;means FT_INVALID_HANDLE.
and
Command <<rmmod ftdi_sio >> is using.
and
Lib directory: /dev/local/lib
and
QT setting:
LIBS += -L$$PWD/../../../usr/local/lib/ -lftd2xx
INCLUDEPATH += $$PWD/../../../usr/local/include
DEPENDPATH += $$PWD/../../../usr/local/include
【问题讨论】:
-
请修正您的格式。另外我认为这与Qt没有任何关系。即使您的项目使用
qmake和 Qt,您也不会遇到链接或运行时问题,因此您所描述的错误来自您在使用 FTD2xx 的 API 时使用的逻辑和/或来自API/板本身。 -
我在同一硬件中使用不同驱动程序 (libftdi) 的相同代码。但由于 chunk_size 和 ... 的一些问题,我正在测试第二个驱动程序(libftd2xx)。