Struct microbit::hal::twim::Twim[][src]

pub struct Twim<T>(_);
Expand description

Interface to a TWIM instance.

This is a very basic interface that comes with the following limitation: The TWIM instances share the same address space with instances of SPIM, SPIS, SPI, TWIS, and TWI. For example, TWIM0 conflicts with SPIM0, SPIS0, etc.; TWIM1 conflicts with SPIM1, SPIS1, etc. You need to make sure that conflicting instances are disabled before using Twim. Please refer to the product specification for more information (section 15.2 for nRF52832, section 6.1.2 for nRF52840).

Implementations

impl<T> Twim<T> where
    T: Instance
[src]

pub fn new(twim: T, pins: Pins, frequency: FREQUENCY_A) -> Twim<T>[src]

pub fn disable(&mut self)[src]

Disable the instance.

Disabling the instance will switch off the peripheral leading to a considerably lower energy use. However, while the instance is disabled it is not possible to use it for communication. The configuration of the instance will be retained.

pub fn enable(&mut self)[src]

Re-enable the instance after it was previously disabled.

pub fn write(&mut self, address: u8, buffer: &[u8]) -> Result<(), Error>[src]

Write to an I2C slave.

The buffer must have a length of at most 255 bytes on the nRF52832 and at most 65535 bytes on the nRF52840.

pub fn read(&mut self, address: u8, buffer: &mut [u8]) -> Result<(), Error>[src]

Read from an I2C slave.

The buffer must have a length of at most 255 bytes on the nRF52832 and at most 65535 bytes on the nRF52840.

pub fn write_then_read(
    &mut self,
    address: u8,
    wr_buffer: &[u8],
    rd_buffer: &mut [u8]
) -> Result<(), Error>
[src]

Write data to an I2C slave, then read data from the slave without triggering a stop condition between the two.

The buffers must have a length of at most 255 bytes on the nRF52832 and at most 65535 bytes on the nRF52840.

pub fn copy_write_then_read(
    &mut self,
    address: u8,
    wr_buffer: &[u8],
    rd_buffer: &mut [u8]
) -> Result<(), Error>
[src]

Copy data into RAM and write to an I2C slave, then read data from the slave without triggering a stop condition between the two.

The write buffer must have a length of at most 255 bytes on the nRF52832 and at most 1024 bytes on the nRF52840.

The read buffer must have a length of at most 255 bytes on the nRF52832 and at most 65535 bytes on the nRF52840.

pub fn free(self) -> T[src]

Return the raw interface to the underlying TWIM peripheral.

Trait Implementations

impl<T> Read for Twim<T> where
    T: Instance
[src]

type Error = Error

Error type

pub fn read(&mut self, addr: u8, bytes: &'w mut [u8]) -> Result<(), Error>[src]

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

impl<T> Write for Twim<T> where
    T: Instance
[src]

type Error = Error

Error type

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

Sends bytes to slave with address addr Read more

impl<T> WriteRead for Twim<T> where
    T: Instance
[src]

type Error = Error

Error type

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

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

Auto Trait Implementations

impl<T> Send for Twim<T> where
    T: Send

impl<T> Sync for Twim<T> where
    T: Sync

impl<T> Unpin for Twim<T> where
    T: Unpin

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Az for T[src]

pub fn az<Dst>(self) -> Dst where
    T: Cast<Dst>, 
[src]

Casts the value.

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> CheckedAs for T[src]

pub fn checked_as<Dst>(self) -> Option<Dst> where
    T: CheckedCast<Dst>, 
[src]

Casts the value.

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<Src, Dst> LosslessTryInto<Dst> for Src where
    Dst: LosslessTryFrom<Src>, 
[src]

pub fn lossless_try_into(self) -> Option<Dst>[src]

Performs the conversion.

impl<Src, Dst> LossyInto<Dst> for Src where
    Dst: LossyFrom<Src>, 
[src]

pub fn lossy_into(self) -> Dst[src]

Performs the conversion.

impl<T> OverflowingAs for T[src]

pub fn overflowing_as<Dst>(self) -> (Dst, bool) where
    T: OverflowingCast<Dst>, 
[src]

Casts the value.

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> SaturatingAs for T[src]

pub fn saturating_as<Dst>(self) -> Dst where
    T: SaturatingCast<Dst>, 
[src]

Casts the value.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

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

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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

Performs the conversion.

impl<T> UnwrappedAs for T[src]

pub fn unwrapped_as<Dst>(self) -> Dst where
    T: UnwrappedCast<Dst>, 
[src]

Casts the value.

impl<T> WrappingAs for T[src]

pub fn wrapping_as<Dst>(self) -> Dst where
    T: WrappingCast<Dst>, 
[src]

Casts the value.