Mistake on this page?
Report an issue in GitHub or email us
Public Member Functions | Protected Attributes
mbed::SPISlave Class Reference

#include <SPISlave.h>

Inheritance diagram for mbed::SPISlave:
mbed::NonCopyable< SPISlave >

Public Member Functions

 SPISlave (PinName mosi, PinName miso, PinName sclk, PinName ssel)
void format (int bits, int mode=0)
void frequency (int hz=1000000)
int receive (void)
int read (void)
void reply (int value)

Protected Attributes

spi_t _spi
int _bits
int _mode
int _hz

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

Synchronization level: Not protected


// Reply to a SPI master as slave
#include "mbed.h"
SPISlave device(p5, p6, p7, p8); // mosi, miso, sclk, ssel
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

Constructor & Destructor Documentation

mbed::SPISlave::SPISlave ( PinName  mosi,
PinName  miso,
PinName  sclk,
PinName  ssel 

Create a SPI slave connected to the specified pins

mosi or miso can be specified as NC if not used

mosiSPI Master Out, Slave In pin
misoSPI Master In, Slave Out pin
sclkSPI Clock pin
sselSPI chip select pin

Member Function Documentation

void mbed::SPISlave::format ( int  bits,
int  mode = 0 

Configure the data transmission format

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 mbed::SPISlave::frequency ( int  hz = 1000000)

Set the spi bus clock frequency

hzSCLK frequency in hz (default = 1MHz)
int mbed::SPISlave::read ( void  )

Retrieve data from receive buffer as slave

the data in the receive buffer
int mbed::SPISlave::receive ( void  )

Polls the SPI to see if data has been received

0 if no data, 1 otherwise
void mbed::SPISlave::reply ( int  value)

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

valuethe data to be transmitted next

The documentation for this class was generated from the following files:
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.