pub trait WriteRead<A: AddressMode = SevenBitAddress> {
    type Error;
    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 condition
- SAD+W= slave address followed by bit 0 to indicate writing
- SAK= slave acknowledge
- Oi= ith outgoing byte of data
- SR= repeated start condition
- SAD+R= slave address followed by bit 1 to indicate reading
- Ii= ith incoming byte of data
- MAK= master acknowledge
- NMAK= master no acknowledge
- SP= stop condition