Mbed OS Reference
Loading...
Searching...
No Matches
SPISlave Class Reference

A SPI slave, used for communicating with a SPI master device. More...

#include <SPISlave.h>

Inheritance diagram for SPISlave:
NonCopyable< SPISlave >

Public Member Functions

 SPISlave (PinName mosi, PinName miso, PinName sclk, PinName ssel)
 Create a SPI slave connected to the specified pins. More...
 
 SPISlave (const spi_pinmap_t &pinmap)
 Create a SPI slave connected to the specified pins. More...
 
 ~SPISlave ()
 Destructor. More...
 
void format (int bits, int mode=0)
 Configure the data transmission format. More...
 
int receive (void)
 Polls the SPI to see if data has been received. More...
 
int read (void)
 Retrieve data from receive buffer as slave. More...
 
void reply (int value)
 Fill the transmission buffer with the value to be written out as slave on the next received message from the master. More...
 

Detailed Description

A SPI slave, used for communicating with a SPI master device.

The default format is set to 8 bits, mode 0.

Note
Synchronization level: Not protected

Example of how to reply to a SPI master as slave:

#include "mbed.h"
SPISlave device(SPI_MOSI, SPI_MISO, SPI_SCLK, SPI_CS);
int main() {
device.reply(0x00); // Prime SPI with first reply
while(1) {
if(device.receive()) {
int v = device.read(); // Read byte from master
v = (v + 1) % 0x100; // Add one to it, modulo 256
device.reply(v); // Make this the next reply
}
}
}
A SPI slave, used for communicating with a SPI master device.
Definition: SPISlave.h:59

Definition at line 59 of file SPISlave.h.

Constructor & Destructor Documentation

◆ SPISlave() [1/2]

SPISlave ( PinName  mosi,
PinName  miso,
PinName  sclk,
PinName  ssel 
)

Create a SPI slave connected to the specified pins.

Note
Either mosi or miso can be specified as NC if not used.
Parameters
mosiSPI Master Out, Slave In pin.
misoSPI Master In, Slave Out pin.
sclkSPI Clock pin.
sselSPI Chip Select pin.

◆ SPISlave() [2/2]

SPISlave ( const spi_pinmap_t pinmap)

Create a SPI slave connected to the specified pins.

Note
Either mosi or miso can be specified as NC if not used.
Parameters
pinmapreference to structure which holds static pinmap.

◆ ~SPISlave()

~SPISlave ( )

Destructor.

Frees the SPI peripheral so it can be used elsewhere.

Member Function Documentation

◆ format()

void format ( int  bits,
int  mode = 0 
)

Configure the data transmission format.

Parameters
bitsNumber of bits per SPI frame (4 - 16).
modeClock polarity and phase mode (0 - 3).
mode | POL PHA
-----+--------
0 | 0 0
1 | 0 1
2 | 1 0
3 | 1 1

◆ receive()

int receive ( void  )

Polls the SPI to see if data has been received.

Returns
Presence of received data.
Return values
0No data waiting.
1Data waiting.

◆ read()

int read ( void  )

Retrieve data from receive buffer as slave.

Returns
The data in the receive buffer.

◆ reply()

void reply ( int  value)

Fill the transmission buffer with the value to be written out as slave on the next received message from the master.

Parameters
valueThe data to be transmitted next.