Mistake on this page?
Report an issue in GitHub or email us

SPISlave

SPISlave class hierarchy

Use the SPISlave class to communicate 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.

SPISlave class reference

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

SPISlave example

/*
 * Copyright (c) 2006-2020 Arm Limited and affiliates.
 * SPDX-License-Identifier: Apache-2.0
 */
#include "mbed.h"

SPISlave device(D12, D11, D13, D10); // 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
        }
    }
}

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.