12个重大版本发布
0.22.0 | 2024年5月7日 |
---|---|
0.21.1 | 2024年3月27日 |
0.21.0 | 2024年1月10日 |
0.20.0 | 2023年12月14日 |
0.10.0 | 2021年11月9日 |
#60 in 嵌入式开发
406 每月下载次数
用于 8 个crate(6个直接使用)
89KB
1.5K SLoC
ftdi-embedded-hal
这是FTDI芯片的embedded-hal实现,可以用于包括libftd2xx和ftdi-rs在内的各种驱动程序。
这允许在不使用微控制器的情况下开发嵌入式设备驱动程序。FTDI设备通过USB与PC接口,并提供一个多协议同步串行引擎,以与大多数GPIO、SPI、I2C嵌入式设备接口。
注意:这是一个严格的开发工具。该crate包含运行时借用检查和显式panic,以将FTDI设备适配到embedded-hal traits。
快速入门
- 启用"libftd2xx-static"功能标志以使用与libftd2xx驱动程序的静态链接。
- 仅限Linux用户:添加udev规则。
[dependencies.ftdi-embedded-hal]
version = "0.22.0"
features = ["libftd2xx", "libftd2xx-static"]
限制
- 有限的trait支持:实现了SPI、I2C、Delay、InputPin和OutputPin traits。
- 有限的设备支持:FT232H、FT2232H、FT4232H。
- 有限的SPI模式支持:MODE0、MODE2。
示例
SPI
引脚设置
- D0 - SCK
- D1 - SDO (MOSI)
- D2 - SDI (MISO)
- D3..D7 - 可用于CS
使用ftdi-rs驱动程序与SPI设备通信
use ftdi_embedded_hal as hal;
let device = ftdi::find_by_vid_pid(0x0403, 0x6010)
.interface(ftdi::Interface::A)
.open()?;
let hal = hal::FtHal::init_freq(device, 3_000_000)?;
let spi = hal.spi()?;
使用libftd2xx驱动程序与SPI设备通信
use ftdi_embedded_hal as hal;
let device = libftd2xx::Ft2232h::with_description("Dual RS232-HS A")?;
let hal = hal::FtHal::init_freq(device, 3_000_000)?;
let spi = hal.spi()?;
I2C
使用ftdi-rs驱动程序与I2C设备通信
use ftdi_embedded_hal as hal;
let device = ftdi::find_by_vid_pid(0x0403, 0x6010)
.interface(ftdi::Interface::A)
.open()?;
let hal = hal::FtHal::init_freq(device, 400_000)?;
let i2c = hal.i2c()?;
使用libftd2xx驱动程序与I2C设备通信
use ftdi_embedded_hal as hal;
let device = libftd2xx::Ft232h::with_description("Single RS232-HS")?;
let hal = hal::FtHal::init_freq(device, 400_000)?;
let i2c = hal.i2c()?;
GPIO
使用libftd2xx驱动程序控制GPIO引脚
use ftdi_embedded_hal as hal;
let device = libftd2xx::Ft232h::with_description("Single RS232-HS")?;
let hal = hal::FtHal::init_default(device)?;
let gpio = hal.ad6();
使用ftdi-rs驱动程序控制GPIO引脚
use ftdi_embedded_hal as hal;
let device = ftdi::find_by_vid_pid(0x0403, 0x6010)
.interface(ftdi::Interface::A)
.open()?;
let hal = hal::FtHal::init_default(device)?;
let gpio = hal.ad6();
更多示例
- newAM/eeprom25aa02e48-rs: 从Microchip 25AA02E48 SPI EEPROM读取数据
- newAM/bme280-rs: 通过I2C协议从Bosch BME280传感器读取样本
依赖项
~0.2–1.7MB
~20K SLoC