mbed library sources. Supersedes mbed-src.

Dependents:   Nucleo_Hello_Encoder BLE_iBeaconScan AM1805_DEMO DISCO-F429ZI_ExportTemplate1 ... more

Embed: (wiki syntax)

« Back to documentation index

SPISlave Class Reference

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

#include <SPISlave.h>

Inherits NonCopyable< SPISlave >, and NonCopyable< SPISlave >.

Public Member Functions

 SPISlave (PinName mosi, PinName miso, PinName sclk, PinName ssel)
 Create a SPI slave connected to the specified pins.
void format (int bits, int mode=0)
 Configure the data transmission format.
void frequency (int hz=1000000)
 Set the SPI bus clock frequency.
int receive (void)
 Polls the SPI to see if data has been received.
int read (void)
 Retrieve data from receive buffer as slave.
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.
 SPISlave (PinName mosi, PinName miso, PinName sclk, PinName ssel)
 Create a SPI slave connected to the specified pins.
void format (int bits, int mode=0)
 Configure the data transmission format.
void frequency (int hz=1000000)
 Set the SPI bus clock frequency.
int receive (void)
 Polls the SPI to see if data has been received.
int read (void)
 Retrieve data from receive buffer as slave.
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.

Private Member Functions

 MBED_DEPRECATED ("Invalid copy construction of a NonCopyable resource.") NonCopyable(const NonCopyable &)
 NonCopyable copy constructor.
 MBED_DEPRECATED ("Invalid copy assignment of a NonCopyable resource.") NonCopyable &operator
 NonCopyable copy assignment operator.
 MBED_DEPRECATED ("Invalid copy construction of a NonCopyable resource.") NonCopyable(const NonCopyable &)
 NonCopyable copy constructor.
 MBED_DEPRECATED ("Invalid copy assignment of a NonCopyable resource.") NonCopyable &operator
 NonCopyable copy assignment operator.

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 56 of file cmsis/BUILD/mbed/drivers/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.

Definition at line 23 of file SPISlave.cpp.

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.

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

Definition at line 34 of file SPISlave.cpp.

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).

Definition at line 41 of file SPISlave.cpp.

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 read ( void   )

Retrieve data from receive buffer as slave.

Returns:
The data in the receive buffer.

Definition at line 52 of file SPISlave.cpp.

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.

Definition at line 47 of file SPISlave.cpp.

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

Definition at line 57 of file SPISlave.cpp.