Trait nrf52840_hal::prelude::_embedded_hal_blocking_i2c_WriteRead [−][src]
pub trait _embedded_hal_blocking_i2c_WriteRead<A = u8> where
A: AddressMode, { type Error; fn write_read(
&mut self,
address: A,
bytes: &[u8],
buffer: &mut [u8]
) -> Result<(), Self::Error>; }
Expand description
Blocking write + read
Associated Types
Required methods
fn write_read(
&mut self,
address: A,
bytes: &[u8],
buffer: &mut [u8]
) -> Result<(), Self::Error>
fn write_read(
&mut self,
address: A,
bytes: &[u8],
buffer: &mut [u8]
) -> Result<(), Self::Error>
Writes bytes to slave with address address
and then reads enough bytes to fill buffer
in a
single transaction
I2C Events (contract)
Master: ST SAD+W O0 O1 ... OM SR SAD+R MAK MAK ... NMAK SP Slave: SAK SAK SAK ... SAK SAK I0 I1 ... IN
Where
ST
= start conditionSAD+W
= slave address followed by bit 0 to indicate writingSAK
= slave acknowledgeOi
= ith outgoing byte of dataSR
= repeated start conditionSAD+R
= slave address followed by bit 1 to indicate readingIi
= ith incoming byte of dataMAK
= master acknowledgeNMAK
= master no acknowledgeSP
= stop condition