[−][src]Trait arduino_mkrvidor4000::prelude::_embedded_hal_blocking_i2c_WriteRead
Blocking write + read
Associated Types
type Error
Error type
Required methods
fn write_read(
&mut self,
address: u8,
bytes: &[u8],
buffer: &mut [u8]
) -> Result<(), Self::Error>
&mut self,
address: u8,
bytes: &[u8],
buffer: &mut [u8]
) -> Result<(), Self::Error>
Sends bytes to slave with address addr
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
Implementors
impl<Sercom0Pad0, Sercom0Pad1> WriteRead for I2CMaster0<Sercom0Pad0, Sercom0Pad1>
[src]
type Error = I2CError
fn write_read(
&mut self,
addr: u8,
bytes: &[u8],
buffer: &mut [u8]
) -> Result<(), <I2CMaster0<Sercom0Pad0, Sercom0Pad1> as WriteRead>::Error>
[src]
&mut self,
addr: u8,
bytes: &[u8],
buffer: &mut [u8]
) -> Result<(), <I2CMaster0<Sercom0Pad0, Sercom0Pad1> as WriteRead>::Error>
impl<Sercom1Pad0, Sercom1Pad1> WriteRead for I2CMaster1<Sercom1Pad0, Sercom1Pad1>
[src]
type Error = I2CError
fn write_read(
&mut self,
addr: u8,
bytes: &[u8],
buffer: &mut [u8]
) -> Result<(), <I2CMaster1<Sercom1Pad0, Sercom1Pad1> as WriteRead>::Error>
[src]
&mut self,
addr: u8,
bytes: &[u8],
buffer: &mut [u8]
) -> Result<(), <I2CMaster1<Sercom1Pad0, Sercom1Pad1> as WriteRead>::Error>
impl<Sercom2Pad0, Sercom2Pad1> WriteRead for I2CMaster2<Sercom2Pad0, Sercom2Pad1>
[src]
type Error = I2CError
fn write_read(
&mut self,
addr: u8,
bytes: &[u8],
buffer: &mut [u8]
) -> Result<(), <I2CMaster2<Sercom2Pad0, Sercom2Pad1> as WriteRead>::Error>
[src]
&mut self,
addr: u8,
bytes: &[u8],
buffer: &mut [u8]
) -> Result<(), <I2CMaster2<Sercom2Pad0, Sercom2Pad1> as WriteRead>::Error>
impl<Sercom3Pad0, Sercom3Pad1> WriteRead for I2CMaster3<Sercom3Pad0, Sercom3Pad1>
[src]
type Error = I2CError
fn write_read(
&mut self,
addr: u8,
bytes: &[u8],
buffer: &mut [u8]
) -> Result<(), <I2CMaster3<Sercom3Pad0, Sercom3Pad1> as WriteRead>::Error>
[src]
&mut self,
addr: u8,
bytes: &[u8],
buffer: &mut [u8]
) -> Result<(), <I2CMaster3<Sercom3Pad0, Sercom3Pad1> as WriteRead>::Error>
impl<Sercom4Pad0, Sercom4Pad1> WriteRead for I2CMaster4<Sercom4Pad0, Sercom4Pad1>
[src]
type Error = I2CError
fn write_read(
&mut self,
addr: u8,
bytes: &[u8],
buffer: &mut [u8]
) -> Result<(), <I2CMaster4<Sercom4Pad0, Sercom4Pad1> as WriteRead>::Error>
[src]
&mut self,
addr: u8,
bytes: &[u8],
buffer: &mut [u8]
) -> Result<(), <I2CMaster4<Sercom4Pad0, Sercom4Pad1> as WriteRead>::Error>
impl<Sercom5Pad0, Sercom5Pad1> WriteRead for I2CMaster5<Sercom5Pad0, Sercom5Pad1>
[src]
type Error = I2CError
fn write_read(
&mut self,
addr: u8,
bytes: &[u8],
buffer: &mut [u8]
) -> Result<(), <I2CMaster5<Sercom5Pad0, Sercom5Pad1> as WriteRead>::Error>
[src]
&mut self,
addr: u8,
bytes: &[u8],
buffer: &mut [u8]
) -> Result<(), <I2CMaster5<Sercom5Pad0, Sercom5Pad1> as WriteRead>::Error>