Mistake on this page?
Report an issue in GitHub or email us
Public Member Functions
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...
 
void format (int bits, int mode=0)
 Configure the data transmission format. More...
 
void frequency (int hz=1000000)
 Set the SPI bus clock frequency. 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 and a clock frequency of 1MHz.

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
}
}
}

Definition at line 59 of file SPISlave.h.

Constructor & Destructor Documentation

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 ( 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
static_pinmapreference to structure which holds static pinmap.

Member Function Documentation

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
void frequency ( int  hz = 1000000)

Set the SPI bus clock frequency.

Parameters
hzClock frequency in hz (default = 1MHz).
int read ( void  )

Retrieve data from receive buffer as slave.

Returns
The data in the receive buffer.
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.
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.
Important Information for this Arm website

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies. If you are not happy with the use of these cookies, please review our Cookie Policy to learn how they can be disabled. By disabling cookies, some features of the site will not work.