pub trait SpiSlaveClient {
// Required methods
fn chip_selected(&self);
fn read_write_done(
&self,
write_buffer: Option<&'static mut [u8]>,
read_buffer: Option<&'static mut [u8]>,
len: usize,
status: Result<(), ErrorCode>,
);
}
Expand description
Trait for SPI peripherals (slaves) to receive callbacks when the corresponding controller (master) issues operations.
A SPI operation begins with a callback of SpiSlaveClient::chip_selected
.
If the client has provided buffers with SpiSlave::read_write_bytes
,
these buffers are written from and read into until the operation completes
or one of them fills, at which point a SpiSlaveClient::read_write_done
callback is called. If the client needs to read/write more it can call
SpiSlave::read_write_bytes
again.
Note that there is no notification when the chip select line goes high.
Required Methods§
Sourcefn chip_selected(&self)
fn chip_selected(&self)
Notification that the chip select has been brought low.
Sourcefn read_write_done(
&self,
write_buffer: Option<&'static mut [u8]>,
read_buffer: Option<&'static mut [u8]>,
len: usize,
status: Result<(), ErrorCode>,
)
fn read_write_done( &self, write_buffer: Option<&'static mut [u8]>, read_buffer: Option<&'static mut [u8]>, len: usize, status: Result<(), ErrorCode>, )
Callback issued when the controller completes an SPI operation to this peripheral.
write_buffer
and read_buffer
are the values passed in the previous
call to SpiSlave::read_write_bytes
. The len
parameter specifies
how many bytes were written from/read into Some
values of these
buffers. len
may be shorter than the size of these buffers if the
operation did not fill them.