Trait Bme280Bus

Source
pub trait Bme280Bus {
    type Error;

    // Required methods
    fn read_regs(&mut self, reg: u8, buf: &mut [u8]) -> Result<(), Self::Error>;
    fn write_reg(&mut self, reg: u8, data: u8) -> Result<(), Self::Error>;

    // Provided method
    fn calibration(&mut self) -> Result<Calibration, Self::Error> { ... }
}
Expand description

BME280 bus.

Required Associated Types§

Source

type Error

BME280 bus error.

Required Methods§

Source

fn read_regs(&mut self, reg: u8, buf: &mut [u8]) -> Result<(), Self::Error>

Read from the BME280.

§I2C
Read example (BME280 Datasheet Figure 10: I2C multiple byte read)
+-------+---------------+----+------+------------------+------+
| Start | Slave Address | RW | ACKS | Register Address | ACKS |
+-------+---------------+----+------+------------------+------+
| S     | 111011x       |  0 |      | xxxxxxxx         |      |
+-------+---------------+----+------+------------------+------+

    +-------+---------------+----+------+---------------+------+---------------+--------+------+
... | Start | Slave Address | RW | ACKS | Register Data | ACKM | Register Data | NOACKM | Stop |
    +-------+---------------+----+------+---------------+------+---------------+--------+------+
... | S     | 111011x       |  1 |      | xxxxxxxx      |      | xxxxxxxx      |        | P    |
    +-------+---------------+----+------+---------------+------+---------------+--------+------+
§SPI
Read example (BME280 Datasheet Figure 13: SPI multiple byte read)
+-------+----+------------------+---------------+
| Start | RW | Register Address | Register Data |
+-------+----+------------------+---------------+
| CSB=0 |  1 | xxxxxxx          | xxxxxxxx      |
+-------+----+------------------+---------------+

    +---------------+-------+
... | Register Data | Stop  |
    +---------------+-------+
... | xxxxxxxx      | CSB=0 |
    +---------------+-------+
Source

fn write_reg(&mut self, reg: u8, data: u8) -> Result<(), Self::Error>

Write a single register to the BME280.

§I2C
Write example (BME280 Datasheet Figure 9: I2C multiple byte write)
+-------+---------------+----+------+------------------+------+---------------+------+
| Start | Slave Address | RW | ACKS | Register Address | ACKS | Register Data | ACKS |
+-------+---------------+----+------+------------------+------+---------------+------+
| S     | 111011x       |  0 |      | xxxxxxxx         |      | xxxxxxxx      |      |
+-------+---------------+----+------+------------------+------+---------------+------+

    +------------------+------+---------------+------+------+
... | Register Address | ACKS | Register Data | ACKS | Stop |
    +------------------+------+---------------+------+------+
... | xxxxxxxx         |      | xxxxxxxx      |      | P    |
    +------------------+------+---------------+------+------+
§SPI
Write example (BME280 Datasheet Figure 12: SPI multiple byte write)
+-------+----+------------------+---------------+
| Start | RW | Register Address | Register Data |
+-------+----+------------------+---------------+
| CSB=0 |  0 | xxxxxxx          | xxxxxxxx      |
+-------+----+------------------+---------------+

    +----+------------------+---------------+-------+
... | RW | Register Address | Register Data | Stop  |
    +----+------------------+---------------+-------+
... |  0 | xxxxxxx          | xxxxxxxx      | CSB=0 |
    +----+------------------+---------------+-------+

Provided Methods§

Source

fn calibration(&mut self) -> Result<Calibration, Self::Error>

Read the calibration from the chip.

Implementors§

Source§

impl<I2C, E> Bme280Bus for bme280_multibus::i2c0::Bme280Bus<I2C>
where I2C: Write<Error = E> + WriteRead<Error = E>,

Source§

type Error = E

Source§

impl<I2C, E> Bme280Bus for bme280_multibus::i2c1::Bme280Bus<I2C>
where I2C: I2c<Error = E>,

Source§

type Error = E

Source§

impl<SPI> Bme280Bus for bme280_multibus::spi1::Bme280Bus<SPI>
where SPI: SpiDevice,

Source§

type Error = <SPI as ErrorType>::Error

Source§

impl<SPI, CS, E> Bme280Bus for bme280_multibus::spi0::infallible_gpio::Bme280Bus<SPI, CS>
where SPI: Transfer<u8, Error = E> + Write<u8, Error = E>, CS: OutputPin<Error = Infallible>,

Source§

type Error = E

Source§

impl<SPI, CS, SpiError, PinError> Bme280Bus for bme280_multibus::spi0::Bme280Bus<SPI, CS>
where SPI: Transfer<u8, Error = SpiError> + Write<u8, Error = SpiError>, CS: OutputPin<Error = PinError>,

Source§

type Error = Error<SpiError, PinError>