embassy_bme280_sensor/
lib.rs1#![no_std]
2#![no_main]
3
4pub mod bme280_rp;
5pub mod calibration;
6pub mod configuration;
7
8const BME280_REGISTER_CHIPID: u8 = 0xD0;
9const BME280_REGISTER_SOFTRESET: u8 = 0xE0;
10const BME280_REGISTER_STATUS: u8 = 0xF3;
11
12const BME280_REGISTER_DIG_FIRST_START: u8 = 0x88;
13const BME280_REGISTER_DIG_FIRST_END: u8 = 0xA1 + size_of::<u8>() as u8;
14const BME280_REGISTER_DIG_FIRST_LENGTH: usize =
15 (BME280_REGISTER_DIG_FIRST_END - BME280_REGISTER_DIG_FIRST_START) as usize;
16
17const BME280_REGISTER_DIG_SECOND_START: u8 = 0xE1;
18const BME280_REGISTER_DIG_SECOND_END: u8 = 0xE7 + size_of::<u8>() as u8;
19const BME280_REGISTER_DIG_SECOND_LENGTH: usize =
20 (BME280_REGISTER_DIG_SECOND_END - BME280_REGISTER_DIG_SECOND_START) as usize;
21
22const BME280_REGISTER_CONTROLHUMID: u8 = 0xF2;
23const BME280_REGISTER_CONTROL: u8 = 0xF4;
24const BME280_REGISTER_CONFIG: u8 = 0xF5;
25
26const BME280_REGISTER_DATA_START: u8 = 0xF7;
27const BME280_REGISTER_DATA_LENGTH: usize = 8;
28
29#[derive(Clone)]
30pub struct BME280Response {
31 pub humidity: f32,
32 pub temperature: f32,
33 pub pressure: f32,
34}
35
36#[derive(Debug, Clone)]
37pub enum BME280Error {
38 NoData,
39 I2CError,
40 InvalidChipId(u8),
41 Timeout,
42 NotCalibrated,
43}