Struct I2c

Source
pub struct I2c<I2C, PINS> { /* private fields */ }
Expand description

I2C peripheral operating in master mode

Implementations§

Source§

impl<I2C, SCL, SDA> I2c<I2C, (SCL, SDA)>

Source

pub fn new( i2c: I2C, pins: (SCL, SDA), freq: Hertz, clocks: Clocks, bus: &mut <I2C as RccBus>::Bus, ) -> Self
where I2C: Instance, SCL: SclPin<I2C>, SDA: SdaPin<I2C>,

Configures the I2C peripheral to work in master mode

§Panics

Panics if frequency freq can not be configured for the periphery.

Source

pub unsafe fn peripheral(&mut self) -> &mut I2C

Get access to the underlying register block.

§Safety

This function is not memory unsafe per se, but does not guarantee anything about assumptions of invariants made in this implementation.

Changing specific options can lead to un-expected behavior and nothing is guaranteed.

Source

pub fn free(self) -> (I2C, (SCL, SDA))

Releases the I2C peripheral and associated pins

Trait Implementations§

Source§

impl<I2C, PINS> Read for I2c<I2C, PINS>
where I2C: Instance,

Source§

type Error = Error

Error type
Source§

fn read(&mut self, addr: u8, buffer: &mut [u8]) -> Result<(), Self::Error>

Reads enough bytes from slave with address to fill buffer Read more
Source§

impl<I2C, PINS> Write for I2c<I2C, PINS>
where I2C: Instance,

Source§

type Error = Error

Error type
Source§

fn write(&mut self, addr: u8, bytes: &[u8]) -> Result<(), Error>

Writes bytes to slave with address address Read more
Source§

impl<I2C, PINS> WriteRead for I2c<I2C, PINS>
where I2C: Instance,

Source§

type Error = Error

Error type
Source§

fn write_read( &mut self, addr: u8, bytes: &[u8], buffer: &mut [u8], ) -> Result<(), Error>

Writes bytes to slave with address address and then reads enough bytes to fill buffer in a single transaction Read more

Auto Trait Implementations§

§

impl<I2C, PINS> Freeze for I2c<I2C, PINS>
where I2C: Freeze, PINS: Freeze,

§

impl<I2C, PINS> RefUnwindSafe for I2c<I2C, PINS>
where I2C: RefUnwindSafe, PINS: RefUnwindSafe,

§

impl<I2C, PINS> Send for I2c<I2C, PINS>
where I2C: Send, PINS: Send,

§

impl<I2C, PINS> Sync for I2c<I2C, PINS>
where I2C: Sync, PINS: Sync,

§

impl<I2C, PINS> Unpin for I2c<I2C, PINS>
where I2C: Unpin, PINS: Unpin,

§

impl<I2C, PINS> UnwindSafe for I2c<I2C, PINS>
where I2C: UnwindSafe, PINS: 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.