pub struct Twim<T>(/* private fields */);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§
Source§impl<T> Twim<T>where
T: Instance,
impl<T> Twim<T>where
T: Instance,
pub fn new(twim: T, pins: Pins, frequency: FREQUENCY_A) -> Twim<T>
Sourcepub fn disable(&mut self)
pub fn disable(&mut self)
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.
Sourcepub fn write(&mut self, address: u8, buffer: &[u8]) -> Result<(), Error>
pub fn write(&mut self, address: u8, buffer: &[u8]) -> Result<(), Error>
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.
Sourcepub fn read(&mut self, address: u8, buffer: &mut [u8]) -> Result<(), Error>
pub fn read(&mut self, address: u8, buffer: &mut [u8]) -> Result<(), Error>
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.
Sourcepub fn write_then_read(
&mut self,
address: u8,
wr_buffer: &[u8],
rd_buffer: &mut [u8],
) -> Result<(), Error>
pub fn write_then_read( &mut self, address: u8, wr_buffer: &[u8], rd_buffer: &mut [u8], ) -> Result<(), Error>
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.
Sourcepub fn copy_write_then_read(
&mut self,
address: u8,
wr_buffer: &[u8],
rd_buffer: &mut [u8],
) -> Result<(), Error>
pub fn copy_write_then_read( &mut self, address: u8, wr_buffer: &[u8], rd_buffer: &mut [u8], ) -> Result<(), Error>
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.