Skip to main content

Bmi270

Struct Bmi270 

Source
pub struct Bmi270<I2C> { /* private fields */ }

Implementations§

Source§

impl<I2C> Bmi270<I2C>

Source

pub const fn new(i2c: I2C) -> Self

Source

pub fn set_accel_offset(&mut self, offset: Vector3)

Source

pub fn set_gyro_offset(&mut self, offset: Vector3)

Source

pub fn release(self) -> I2C

Source§

impl<I2C, Error> Bmi270<I2C>
where I2C: I2c<Error = Error>,

Source

pub fn init(&mut self, config: Bmi270Config) -> Result<(), Error>

Initializes the BMI270 register settings that do not require a delay provider.

CoreS3 firmware should prefer Self::init_with_delay because BMI270 requires delays while resetting and loading its mandatory configuration file.

Source

pub fn init_with_delay( &mut self, config: Bmi270Config, delay: &mut impl DelayNs, ) -> Result<(), Error>

Source

pub fn configure(&mut self, config: Bmi270Config) -> Result<(), Error>

Source

pub fn chip_id(&mut self) -> Result<u8, Error>

Source

pub fn is_expected_chip(&mut self) -> Result<bool, Error>

Source

pub fn internal_status(&mut self) -> Result<u8, Error>

Returns the BMI270 internal status register.

After a successful config upload the lower nibble should report 0x01 (init_ok). Other values indicate that acceleration/gyro data may stay invalid or zero.

Source

pub fn interrupt_status_1(&mut self) -> Result<u8, Error>

Returns the BMI270 interrupt/status register used to observe data-ready bits.

Source

pub fn power_control(&mut self) -> Result<u8, Error>

Returns the BMI270 power-control register.

Source

pub fn init_bmm150_aux(&mut self, delay: &mut impl DelayNs) -> Result<u8, Error>

Initializes the CoreS3 BMM150 magnetometer through the BMI270 auxiliary I2C bus.

CoreS3 wires BMM150 behind BMI270’s AUX sensor-hub interface, so it is not reachable as a normal device on the board internal I2C bus.

Source

pub fn bmm150_aux_magnetic_raw(&mut self) -> Result<Vector3, Error>

Reads BMM150 raw magnetic data from BMI270’s auxiliary data window.

Source

pub fn bmm150_aux_magnetic_raw_manual( &mut self, delay: &mut impl DelayNs, ) -> Result<Vector3, Error>

Performs an explicit BMM150 data-register burst read through BMI270’s AUX bus.

This is useful for hardware validation because it does not depend on the BMI270 sensor-hub shadow window updating automatically between samples.

Source

pub fn acceleration_raw(&mut self) -> Result<Vector3, Error>

Source

pub fn gyroscope_raw(&mut self) -> Result<Vector3, Error>

Auto Trait Implementations§

§

impl<I2C> Freeze for Bmi270<I2C>
where I2C: Freeze,

§

impl<I2C> RefUnwindSafe for Bmi270<I2C>
where I2C: RefUnwindSafe,

§

impl<I2C> Send for Bmi270<I2C>
where I2C: Send,

§

impl<I2C> Sync for Bmi270<I2C>
where I2C: Sync,

§

impl<I2C> Unpin for Bmi270<I2C>
where I2C: Unpin,

§

impl<I2C> UnsafeUnpin for Bmi270<I2C>
where I2C: UnsafeUnpin,

§

impl<I2C> UnwindSafe for Bmi270<I2C>
where I2C: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Az for T

Source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

Source§

fn cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> CheckedAs for T

Source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where Src: CheckedCast<Dst>,

Source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> OverflowingAs for T

Source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

Source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
Source§

impl<T> SaturatingAs for T

Source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

Source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> UnwrappedAs for T

Source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

Source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> WrappingAs for T

Source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where Src: WrappingCast<Dst>,

Source§

fn wrapping_cast_from(src: Src) -> Dst

Casts the value.