Crates.io | bmpe280 |
lib.rs | bmpe280 |
version | 1.0.5 |
created_at | 2025-03-14 02:03:01.062767+00 |
updated_at | 2025-08-23 00:49:22.343796+00 |
description | An I2C driver for the Bosch BMP280/BME280 barometer , thermometer. |
homepage | https://gitee.com/tietang/bmpe280 |
repository | https://gitee.com/tietang/bmpe280 |
max_upload_size | |
id | 1591721 |
size | 20,391 |
An I2C driver for the BMP280 barometer, thermometer.
Usage Add the following to your Cargo.toml:
[dependencies]
bmpe280 = "0.1.5-ehal1"
Use embedded-hal 1.0.0 implementation to get I2C handle and delay then create handle.
#![no_std]
#![no_main]
use esp_backtrace as _;
use esp_hal::i2c::master::{ Config, I2c};
use esp_hal::{delay::Delay, main};
use bmp280_driver::BMP280;
use esp_println::println;
#[main]
fn main() -> ! {
let config=esp_hal::Config::default();
let delay = Delay::new();
let peripherals = esp_hal::init(config);
let i2c0 = I2c::new(peripherals.I2C0, Config::default())
.unwrap()
.with_sda(peripherals.GPIO3)
.with_scl(peripherals.GPIO1);
use bmp280_driver::BMP280;
let mut bmp = BMP280::new(i2c0);
loop {
let m=bmp.measure();
println!("1:temperature:{0}℃, pressure:{1}",m.temperature,m.pressure);
delay.delay_millis(1000);
}
}
use bmp280_driver::BMP280;
let mut afio = dp.AFIO.constrain();
let i2c = I2c::i2c1(
dp.I2C1,
(scl, sda),
&mut afio.mapr,
Mode::Standard {
frequency: 100.kHz(),
},
clocks,
);
let mut i2c1 = i2c.blocking_default(clocks);
let mut delay = dp.TIM2.delay_us(&clocks);
let mut bmp = BMP280::new(i2c1);
loop {
let m = bmp.measure();
hprintln!("1:temperature:{0}℃, pressure:{1}",m.temperature,m.pressure);
delay.delay_ms(2000_u16);
}