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