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 次下载
1MB
393 行代码(不含注释)
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);