基本ライブラリ
デジタルIO
アナログIO
拡張IO
時間
数学
三角関数
乱数
ビットバイト操作
割り込み
シリアル通信
標準ライブラリ
Ethernet
サーボモーター
ステッピングモーター
キャラクタ液晶表示
SPI通信
I2C通信(Wire)
SD
SD(File操作)
周期処理(MsTimer2)
時計(RTC)
PPG(パルス生成)
WiFiEsp
ICS(シリアルサーボ)
FreeRTOS Tips
SPI
2つ以上のマイコンと通信するためのSPI通信をするためのライブラリです。使用する場合は、#include <SPI.h>
を記述してください。
SPISettings
- 概要
- それぞれのSPIデバイスに対して一度だけ初期化できます。
- 文法
- SPISettings mySetting(speed, dataOrder, datamode)
- パラメータ
- speed: 通信速度
dataOrder: MSBFIRST or LSBFIRST
dataMode: SPI_MODE0, SPI_MODE1, SPI_MODE2, or SPI_MODE3 - 戻り値
- なし
begin
- 概要
- SPIバスを初期化し、SCK、MOSI、SSを出力にして、SCKとMOSIはlowに、SSはhighします.
- 文法
- SPI.begin()
- パラメータ
- なし
- 戻り値
- なし
end
- 概要
- SPIを停止して、ピンをI/Oポートに戻します。
- 文法
- SPI.end()
- パラメータ
- なし
- 戻り値
- なし
beginTransaction()
- 概要
- SPISettingsで定義されたSPIバスを使用するように初期化します。
- 文法
- SPI.beginTransaction(mySettings)
- パラメータ
- mySettings: SPISettingsでの設定を選択.
- 戻り値
- なし
endTransaction()
- 概要
- SPIバスの使用を停止します。他のライブラリでSPIバスを使用できるようにチップセレクトをインアクティブにしてコールします。
- 文法
- SPI.endTransaction()
- パラメータ
- なし
- 戻り値
- なし
setBitOrder
- 概要
- 送受信するビットオーダーを指定します。
- 文法
- SPI.setBitOrder(bitOrder)
- パラメータ
- bitOrder: ビットオーダー(MSBFIRST、LSBFIRST)。デフォルトはMSBFIRST。
- 戻り値
- なし
setClockDivider
- 概要
- SPIクロックの速度を設定します。
- 文法
- SPI.setClockDivider(divider)
- パラメータ
- divider: 次のいずれかを指定。
SPI_CLOCK_DIV: 30MHz
SPI_CLOCK_DIV4: 15MHz
SPI_CLOCK_DIV6: 10MHz
SPI_CLOCK_DIV8: 7.5MHz
SPI_CLOCK_DIV10: 6MHz
SPI_CLOCK_DIV12: 5MHz
SPI_CLOCK_DIV14: 4.3MHz
SPI_CLOCK_DIV16: 3.75MHz(default)
SPI_CLOCK_DIV20: 3MHz
SPI_CLOCK_DIV30: 2MHz
SPI_CLOCK_DIV60: 1MHz - 戻り値
- なし
setDataMode
- 概要
- SPIのデータ取得モードを設定します。
- 文法
- SPI.setDataMode(mode)
- パラメータ
- mode: 次のいずれかを指定。デフォルトはモード0。
SPI_MODE0 : アイドル時のクロックがLow、立ち上がりでサンプリング(default)
SPI_MODE1 : アイドル時のクロックがLow、立ち下がりでサンプリング
SPI_MODE2 : アイドル時のクロックがHigh、立ち上がりでサンプリング
SPI_MODE3 : アイドル時のクロックがHigh、立ち下がりでサンプリング - 戻り値
- なし
transfer
- 概要
- SPIデータを送受信します。
- 文法
- SPI.transfer(value)
- パラメータ
- value: 1バイトのデータ。
- 戻り値
- SPIバスで取得されたデータ
サンプルプログラム
#include <Arduino.h>
#include <SPI.h>
void setup(){
SPI.begin();
}
void loop(){
//write
SPI.transfer(0x55);
//read
uint8_t data = SPI.transfer(0xff);
}