8个版本

0.3.3 2023年2月22日
0.3.2 2023年2月21日
0.2.2 2023年2月20日
0.1.0 2023年2月20日

#1877 in 嵌入式开发

每月 27 次下载

MIT 许可证

1MB
393 行代码(不含注释)

Crates.io Version Crates.io Downloads No Std

SPL06-007气压和温度传感器的I2C驱动程序,适用于嵌入式环境。

用法

该驱动程序设计用于与嵌入式-hal一起使用,并需要将I2C接口传递给驱动程序。该驱动程序对I2C接口和错误类型是通用的,使其能够与任何支持所需特质的I2C实现一起使用。

将以下内容添加到您的Cargo.toml中

[dependencies]
spl06_007 = "0.3"

Arduino Uno上的示例用法

#![no_std]
#![no_main]

use arduino_hal::prelude::*;
use panic_halt as _;

use spl06_007::Barometer;

#[arduino_hal::entry]
fn main() -> ! {
    let dp = arduino_hal::Peripherals::take().expect("Failed to take peripherals");
    let pins = arduino_hal::pins!(dp);
    let mut serial = arduino_hal::default_serial!(dp, pins, 57600);

    let mut i2c = arduino_hal::I2c::new(
        dp.TWI,
        pins.a4.into_pull_up_input(),
        pins.a5.into_pull_up_input(),
        50000,
    );

    let mut barometer = Barometer::new(&mut i2c).expect("Failed to initialise barometer");

    loop {
        ufmt::uwriteln!(&mut serial, "T: {:?}", barometer.get_temperature().unwrap() as u16).void_unwrap();
        ufmt::uwriteln!(&mut serial, "P: {:?}", barometer.get_pressure().unwrap() as u16).void_unwrap();
        ufmt::uwriteln!(&mut serial, "A: {:?}", barometer.altitude(1020.0).unwrap() as u16).void_unwrap();
    }
}

您可以手动设置模式、采样率和过采样值

barometer.set_pressure_config(SampleRate::Single, SampleRate::Eight);
barometer.set_temperature_config(SampleRate::Single, SampleRate::Eight);

这有助于更快地更新、更好的精度或降低功耗。

还可以将模式设置为 Mode::Standby 以降低功耗

barometer.set_mode(Mode::Standby);

依赖项