Skip to main content

Vl53l0x

Struct Vl53l0x 

Source
pub struct Vl53l0x<SCL, SDA> { /* private fields */ }

Implementations§

Source§

impl<SCL, SDA> Vl53l0x<SCL, SDA>
where SCL: PinScl<I2C1>, SDA: PinSda<I2C1>,

Source

pub fn new(bus: I2cBus<SCL, SDA>) -> Result<Self, Error>

Verify device identity and run mandatory data init (2V8 I/O, stop_variable, MSRC, sequence).

Source

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

Read SPAD info from NVM and configure the SPAD enable map.

Source

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

Write ST’s default tuning register table.

This is a magic blob copied verbatim from ST’s proprietary VL53L0X API (vl53l0x_tuning.h). It configures internal analog/digital parameters that ST does not publicly document. Every open-source VL53L0X driver reproduces this table as-is. Do not modify individual values.

Source

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

Run VHV (voltage) and phase reference calibration.

Must be called after load_tuning. The two calibration passes (VHV = 0x40, phase = 0x00) compensate for chip-to-chip variation. Register 0x01 is SYSTEM_SEQUENCE_CONFIG — each write selects which calibration step runs.

Source

pub fn read_range_mm(&mut self) -> Result<u16, Error>

Single-shot range measurement in mm

Auto Trait Implementations§

§

impl<SCL, SDA> Freeze for Vl53l0x<SCL, SDA>
where SCL: Freeze, SDA: Freeze,

§

impl<SCL, SDA> RefUnwindSafe for Vl53l0x<SCL, SDA>
where SCL: RefUnwindSafe, SDA: RefUnwindSafe,

§

impl<SCL, SDA> Send for Vl53l0x<SCL, SDA>
where SCL: Send, SDA: Send,

§

impl<SCL, SDA> !Sync for Vl53l0x<SCL, SDA>

§

impl<SCL, SDA> Unpin for Vl53l0x<SCL, SDA>
where SCL: Unpin, SDA: Unpin,

§

impl<SCL, SDA> UnsafeUnpin for Vl53l0x<SCL, SDA>
where SCL: UnsafeUnpin, SDA: UnsafeUnpin,

§

impl<SCL, SDA> UnwindSafe for Vl53l0x<SCL, SDA>
where SCL: UnwindSafe, SDA: 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> 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<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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.