在将FTDI设备连接到USB端口后,FT_OpenEx()返回一个错误代码2,即FT_DEVICE_NOT_FOUND。但是,在终端中运行"lsusb“时,会出现FTDI设备。如果设备是由lsusb列出的,是什么导致FT_Open_Ex()返回FT_DEVICE_NOT_FOUND?可能的问题和解决办法是什么?
lsusb的产出:
Bus 001 Device 003: ID 0bda:5776 Realtek Semiconductor Corp.
Bus 001 Device 002: ID 8087:8000 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 003: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hubdmesg _ grep FTDI的输出:
[28153.244220] usbserial: USB Serial support registered for FTDI USB Serial Device
[28153.244260] ftdi_sio 2-1:1.0: FTDI USB Serial Device converter detected
[28153.244509] usb 2-1: FTDI USB Serial Device converter now attached to ttyUSB0dmesg _ grep -i FTDI的输出:
[28153.244206] usbcore: registered new interface driver ftdi_sio
[28153.244220] usbserial: USB Serial support registered for FTDI USB Serial Device
[28153.244260] ftdi_sio 2-1:1.0: FTDI USB Serial Device converter detected
[28153.244509] usb 2-1: FTDI USB Serial Device converter now attached to ttyUSB0发布于 2020-08-27 15:31:11
dmesg输出显示,ftdi_sio (一个内核模块)声称拥有USB来模拟串口。这是典型Ubuntu安装的默认行为。
FT_OpenEx是FTDI D2XX API的一部分,它不能访问ftdi_sio已经声明的设备。
苏多伊姆 如果列出"ftdi_sio“:卸载它(以及它的助手模块usbserial),如下所示。 sudo rmmod ftdi_sio sudo rmmod sudo系列
这将允许D2XX程序访问设备,直到下一次重新启动时内核将再次加载ftdi_sio。这个答案给出了一种避免在每次重新启动后手动卸载它的方法。
发布于 2022-01-07 15:56:03
设备上有读写权限吗?你能试试sudo chmod 666 /dev/ttyUSB0 0吗?
要使此永久化,请制定udev规则。
创建此文件/etc/udev/ file .d/99-ftdi.Rule
ACTION==“添加”,SUBSYSTEM=="usb",ATTRS{idVendor}=="0403",ATTRS={idProduct}=="6001“
https://stackoverflow.com/questions/45054026
复制相似问题