.. _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://www.arduino.cc/playground/Code/Spi>`_

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

* ST Documentation:

  * Reference Manual `RM0008
    <http://www.st.com/stonline/products/literature/rm/13902.pdf>`_
    (PDF), Chapter 25, "Serial Peripheral Interface"

