bmpe280

Crates.iobmpe280
lib.rsbmpe280
version1.0.5
created_at2025-03-14 02:03:01.062767+00
updated_at2025-08-23 00:49:22.343796+00
description An I2C driver for the Bosch BMP280/BME280 barometer , thermometer.
homepagehttps://gitee.com/tietang/bmpe280
repositoryhttps://gitee.com/tietang/bmpe280
max_upload_size
id1591721
size20,391
(wendell1002)

documentation

https://docs.rs/bmpe280

README

BMP280-driver

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.

For BMP280 and esp32 no_std:


#![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);
    }
}

For BMP280 and stm32f103 no_std:

  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);
    }

Commit count: 0

cargo fmt