#usb-device #ftdi #usb #api-bindings

libftd2xx

Rust 对 libftd2xx-ffi 集装箱的安全包装

50 个版本 (31 个破坏性版本)

新版本 0.32.5 2024 年 8 月 20 日
0.32.4 2024 年 3 月 5 日
0.32.3 2023 年 10 月 19 日
0.32.2 2022 年 12 月 14 日
0.7.1 2020 年 7 月 27 日

#52硬件支持

Download history 817/week @ 2024-05-04 722/week @ 2024-05-11 855/week @ 2024-05-18 371/week @ 2024-05-25 380/week @ 2024-06-01 330/week @ 2024-06-08 468/week @ 2024-06-15 376/week @ 2024-06-22 433/week @ 2024-06-29 318/week @ 2024-07-06 421/week @ 2024-07-13 374/week @ 2024-07-20 394/week @ 2024-07-27 367/week @ 2024-08-03 392/week @ 2024-08-10 670/week @ 2024-08-17

每月下载量 1,862
用于 21 个集装箱 (直接使用 10)

MIT 许可证

175KB
2.5K SLoC

crates.io docs.rs CI

libftd2xx

Rust 对 FTDI D2XX 驱动程序的安全包装。

这通过 C 绑定集装箱 libftd2xx-ffi 并扩展 rust 安全包装。

使用方法

只需将此集装箱作为依赖项添加到您的 Cargo.toml 中。

[dependencies.libftd2xx]
version = "0.32.5"
# statically link the vendor library, defaults to dynamic if not set
# this will make things "just work" on Linux and Windows
features = ["static"]

这是一个基本示例以供您开始。请检查源代码或文档以获取更多示例。

use libftd2xx::{Ftdi, FtdiCommon};

let mut ft = Ftdi::new()?;
let info = ft.device_info()?;
println!("Device information: {:?}", info);

此集装箱只是 FTD2XX 驱动程序的一个包装器;使用 embedded-hal 特性进行 I2C、SPI 和 GPIO 示例可以在 ftdi-embedded-hal 中找到。

udev 规则

要在 Linux 上以普通用户身份访问 FTDI USB 设备,您需要更新 udev 规则。

创建一个名为 /etc/udev/rules.d/99-ftdi.rules 的文件,并包含以下内容:

SUBSYSTEM=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6011", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6014", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6015", MODE="0666"

然后,重新加载规则

sudo udevadm control --reload-rules
sudo udevadm trigger

链接

默认情况下,此集装箱将使用动态链接到供应商库。使用 static 功能标志启用静态链接。

Linux 上的动态链接

必须存在系统上的共享对象 libftd2xx.so。请参阅 FTDI 驱动程序 Linux 安装指南 以获取说明。

Windows 上的动态链接

FTD2XX DLL 必须存在于系统 PATH 中。最简单的方法是使用供应商提供的 安装可执行文件

Linux 或 Windows 上的静态链接

无需特殊考虑,静态库已与 FTDI 的许可一起分发给 libftd2xx-ffi 集装箱。

参考资料

故障排除

Linux 上的未知设备

删除 VCP FTDI 驱动程序。

sudo rmmod ftdi_sio
sudo rmmod usbserial

有关更多详细信息,请参阅 FTDI 驱动程序 Linux 安装指南

依赖关系

~7.5MB
~73K SLoC