.. _spi:

=====
 SPI
=====

The Serial Peripheral Interface Bus (SPI) is a serial data transfer
protocol useful for interacting with a wide variety of hardware
peripherals.

The public libmaple API for managing the SPI ports is the
:ref:`HardwareSPI <lang-hardwarespi>` class.

Recommended Reading
-------------------

* `Wikipedia Article on Serial Peripheral Interface Bus (SPI)
  <http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus>`_

* `Arduino reference on SPI
  <http://arduino.cc/en/Reference/SPI>`_

* `Hardcore SPI on Arduino <http://web.archive.org/web/20100522034122/http://klk64.com/arduino-spi/>`_ by kik64

* ST Documentation:

  * Reference Manual `RM0008
    <http://www.st.com/web/en/resource/technical/document/reference_manual/CD00171190.pdf>`_
    (PDF), Chapter 25, "Serial Peripheral Interface"