メインコンテンツに移動

SPI(SPIクラス)

SPI(SPIクラス)

2つ以上のマイコンと通信するためのSPI通信をするためのライブラリです。使用する場合は、#include <SPI.h>を記述してください。
SPIは2チャネルあり、SPI2(ピン 27, 28, 29, 30)を使用する場合は、オブジェクト名としてSPI2を指定してください。注意として、SPI2を使用時はUSB通信用のSerialが使用できなくなります。

begin

概要

初期化します。SCK、MOSI、SSの各ピンは出力に設定され、SCKとMOSIはlowに、SSはhighとなります。

文法

SPI.begin()

パラメータ

なし

戻り値

なし

end

概要

SPIを停止して、ピンをI/Oポートに戻します。

文法

SPI.end()

パラメータ

なし

戻り値

なし

setBitOrder

概要

送受信するビットオーダーを指定します。

文法

SPI.setBitOrder(bitOrder)

パラメータ

bitOrder: ビットオーダー(MSBFIRST、LSBFIRST)。デフォルトはMSBFIRST。

戻り値

なし

setClockDivider

概要

SPIクロックの速度を設定します。

文法

SPI.setClockDivider(divider)

パラメータ

divider: 次のいずれかを指定。16MHzをSPI用のクロックに使用しています。
  SPI_CLOCK_DIV2: 8MHz
  SPI_CLOCK_DIV4: 4MHz
  SPI_CLOCK_DIV8: 2MHz
  SPI_CLOCK_DIV16: 1MHz
  SPI_CLOCK_DIV32: 500kHz
  SPI_CLOCK_DIV64: 250kHz
  SPI_CLOCK_DIV128: 125kHz

戻り値

なし

setDataMode

概要

SPIのデータ取得モードを設定します。

文法

SPI.setDataMode(mode)

パラメータ

mode: 次のいずれかを指定。デフォルトはモード0です。
  SPI_MODE0 : アイドル時のクロックがLow、立ち上がりでサンプリング
  SPI_MODE1 : アイドル時のクロックがLow、立ち下がりでサンプリング
  SPI_MODE2 : アイドル時のクロックがHigh、立ち下がりでサンプリング
  SPI_MODE3 : アイドル時のクロックがHigh、立ち上がりでサンプリング

戻り値

なし

transfer

概要

SPIデータを送受信します。

文法

SPI.transfer(value)

パラメータ

value: 転送するバイトデータ。

戻り値

SPIバスのデータ


サンプルプログラム

送信と受信の例です。


        #include <Arduino.h>
        #include <SPI.h>
        void setup(){
            SPI.begin();
        }
            
        void loop(){
            //write
            SPI.transfer(0x55);
                
            //read
            uint8_t data = SPI.transfer(0xff);
        }