pub trait _embedded_hal_blocking_i2c_WriteRead<A = u8>where
A: AddressMode,{
type Error;
// Required method
fn write_read(
&mut self,
address: A,
bytes: &[u8],
buffer: &mut [u8]
) -> Result<(), Self::Error>;
}Expand description
Blocking write + read
Required Associated Types§
Required Methods§
sourcefn 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