#io #hal #i2c #module #driver #vl53l0x #laser-ranging

无std gyuvl53l0x

VL53L0X (时序飞行I2C激光测距模块)的Rust驱动程序

6次发布

0.3.0 2021年5月20日
0.2.0 2019年12月22日
0.1.3 2019年12月4日
0.1.2 2019年10月21日

#1867 in 嵌入式开发

每月 31次下载

MIT许可

33KB
636

gyuvl53l0x

VL53L0X (时序飞行I2C激光测距模块)的no_std驱动程序

Build Status Docs

基本用法

将此作为依赖项添加到您的Cargo.toml

[dependencies.gyuvl53l0x]
version = "<version>"

使用embedded-hal实现获取I2C句柄,然后创建vl53l0x句柄。

单次读取

extern crate gyuvl53l0x;

match gyuvl53l0x::VL53L0X::default(i2c) {
    Ok(mut u) => {
        // set a new device address
        u.set_device_address(0x39).unwrap();
        // set the measurement timing budget in microseconds
        u.set_measurement_timing_budget(20_000).unwrap();
        loop {
            match u.read_range_single_millimeters_blocking() {
                Ok(val) => {
                    println!("{:#?}", val).unwrap();
                }
                _ => {
                    println!("Not ready").unwrap();
                }
            }
        }
    }
    Err(gyuvl53l0x::VL53L0X::Error::BusError(error)) => {
        println!("{:#?}", error).unwrap();
        panic!();
    }
    _ => {
        panic!();
    }
};

连续读取

extern crate gyuvl53l0x;

match gyuvl53l0x::VL53L0X::default(i2c) {
    Ok(mut u) => {
        u.start_continuous(20_000).unwrap();
        loop {
            match u.read_range_continuous_millimeters_blocking() {
                Ok(val) => {
                    println!("{:#?}", val).unwrap();
                }
                _ => {
                    println!("Not ready").unwrap();
                }
            }
        }
    }
    Err(gyuvl53l0x::VL53L0X::Error::BusError(error)) => {
        println!("{:#?}", error).unwrap();
        panic!();
    }
    _ => {
        panic!();
    }
};

许可

MIT许可

依赖项

~345KB