0
我试图使用FTDI的D2XX驱动程序来访问一个树莓派3. USB串行设备这是我到目前为止已经完成:为什么我不能在Raspberry Pi上使用D2XX访问我的FTDI设备?
- 我下载的是ARMv6的1.3.6硬浮动版本的驱动程序(说明它适用于Raspberry Pi),然后按照Readme指令将其安装到/ usr/local/lib文件夹中
- 我运行了
sudo rmmod ftdi_sio
和sudo rmmod usbserial
命令,建议卸载默认的内核驱动程序 - 在我的程序中,我所做的第一件事是调用
FT_SetVIDPID
函数,以便正确配置它以适应我的特殊需求[R设备 - 在我的计划,我可以确认有1个设备通过
FT_CreateDeviceInfoList
功能插入
然而,在我的程序,试图调用FT_Open
始终失败,FT_DEVICE_NOT_FOUND
(2)。我会复制这里的程序以供参考:
#include <stdio.h>
#include "ftd2xx.h"
int main(int argc, char[] argv)
{
FT_HANDLE ftHandle;
FT_STATUS ftStatus;
int iNumDevs = 0;
ftStatus = FT_SetVIDPID(0x0403, 0x6015);
if (FT_OK != ftStatus)
{
printf("Error: FT_SetPIDVID(%d)\n", (int)ftStatus);
return 1;
}
ftStatus = FT_CreateDeviceInfoList(&iNumDevs);
if (FT_OK != ftStatus)
{
printf("Error: FT_CreateDeviceInfoList(%d)\n", (int)ftStatus);
return 1;
}
printf("Devices: %d\n", iNumDevs);
ftStatus = FT_Open(0, &ftHandle);
if (FT_OK != ftStatus)
{
printf("Error: FT_Open(%d)\n", (int)ftStatus);
return 1;
}
// ...
return 0;
}
从这个小程序得到的输出是一致的。它始终是:
Devices: 1
Error: FT_Open(2)
我总是建立这个程序有:
gcc -lftd2xx -o test test.c
是第一位没有说有一个连接的装置,这一事实给了我希望,我能得到这个工作。但基本上任何其他功能(FT_Open,FT_OpenEx,甚至FT_ListDevices)都会失败,并具有相同的#2错误。我错过了什么?
自从我使用D2XX驱动程序以来,已经有一段时间了,但是您是否在'sudo'下运行了该程序?由于D2XX仅在后端使用libusb,因此它需要对内核中的USB设备进行原始访问。 – rm5248
我没有用sudo运行它。我会尝试一下并报告回来! – SoaperGEM
解决了!如果你想发布一个答案告诉我,我需要用sudo来运行它,我会很乐意接受这个答案。 – SoaperGEM