#usb #driver #usbxpress

silabs_usb_xpress

Silicon Labs USB Xpress 驱动程序

6 个版本

0.3.1 2020年7月2日
0.3.0 2020年7月1日
0.2.1 2020年6月29日
0.1.1 2020年6月28日

#1382 in 硬件支持

GPL-3.0 许可证

53KB
1K SLoC

Rust 617 SLoC // 0.0% comments C 409 SLoC // 0.1% comments

Silicon Labs USB Xpress 驱动程序

License: GPL v3 Crates.io silabs_usb_xpress

操作系统 状态
Linux Linux Build Status
Windows (MSVC) Windows Build Status

此库从 SiUSBXp 端口 API,SiUSBXp 是 SiLabs USBXpress 提供的 SiUSBXp.dll 的开源端口。底层 USB 后端是 libusb,支持跨平台编译。

用法

添加到您的 Cargo.toml

[dependencies]
silabs_usb_xpress = "0.2"

此包适用于 Unix 和 Windows。对于 Unix 系统,需要 pkg-config 来链接 libusb。对于 Windows,您必须安装 vcpkg,设置用户级集成,并使用它安装 libusb-win32。默认情况下,libusb 链接为动态链接,如果需要静态链接,请设置环境变量 VCPKGRS_DYNAMIC=0

要在 Windows 中打包可用的驱动程序,请使用 libusbk' inf 工具

示例


// get device count
let num = devices_count();

// print serial number for selected devices
let if_sn = product_string(0, ProductStringType::SerialNumber);

// print VID for selected devices
let pst = ProductStringType::VID;
let if_vid = product_string(0, pst);

// get timeouts
let t = timeouts().unwrap();

// set timeouts
set_timeouts(Duration::from_millis(500), None).unwrap();

// open handle
let mut handle = UsbXpress::open(0).unwrap();

// write to device handle
let v = vec![0x55, 0x80, 0x00, 0x01, 0x01, 0xAA];
handle.write(&v);

// read 7 bytes from device handle
let read_res = handle.read(7);

// close device
handle.close();

许可证

License: GPL v3

依赖项

~225KB