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