Arduino互換のSPIクラス RXマイコン内蔵のRSPIモジュールを使いやすくする
[詳細]
#include <spi.h>
Arduino互換のSPIクラス RXマイコン内蔵のRSPIモジュールを使いやすくする
- 覚え書き
- 実体は tkdn_spi.h をC++でカプセル化するものである。
- 警告
- このクラスのインスタンスはライブラリをインポートすると自動的に生成され、グローバルインスタンスSPIが使用できるようになる。
ユーザアプリケーションでコンストラクタを呼び出してインスタンスを生成したり、
デフォルトで存在するインスタンスをデストラクトしてはならない。
spi.h の 52 行で定義されています。
void CSPI::begin |
( |
void |
| ) |
|
内蔵SPIモジュールを初期化し、使用できるようにする。
- 覚え書き
- 使用されるピンはボードごとにあらかじめ決められている。
-
SPIの各種関数はこの関数を呼び出した後で呼び出さないと効果を持たない。
- 警告
- SDMMC ライブラリと一緒に使うときには、SDMMC::begin() よりも先に呼び出さなければならない
- 戻り値
- なし
SPIをクローズし、割り当てられたピンを汎用I/Oポートに戻す
- 戻り値
- なし
void CSPI::setBitLength |
( |
int |
bitLength | ) |
|
送受信するビット長の指定
- 引数
-
bitLength | 1回の transfer() で送受信するデータのビット長。 設定可能な値は8~16,20,24,32。これ以外の値を設定したときの動作は保証されない。 |
- 覚え書き
- この関数を呼び出す前はデフォルトで8bitになっている。
- 戻り値
- なし
void CSPI::setBitOrder |
( |
int |
bitOrder | ) |
|
送受信するビットオーダーを指定する
- 引数
-
bitOrder | 設定可能な値
- MSBFIRST : MSB(ビット番号の大きい方)から先に送る
- LSBFIRST : LSB(ビット番号の小さい方)から先に送る
|
- 覚え書き
- この関数を呼び出す前はデフォルトでMSBFIRSTになっている。
- 戻り値
- なし
SPIクロックの速度(PCLKに対する分周比)の設定
- 引数
-
divider | 次の値のいずれかを指定する
- SPI_CLOCK_DIV2 : PCLK/2 (24MHz)
- SPI_CLOCK_DIV4 : PCLK/4 (12MHz)
- SPI_CLOCK_DIV8 : PCLK/8 (6MHz)
- SPI_CLOCK_DIV16 : PCLK/16 (3MHz)
- SPI_CLOCK_DIV32 : PCLK/32 (1.5MHz)
- SPI_CLOCK_DIV64 : PCLK/64 (750kHz)
- SPI_CLOCK_DIV128 : PCLK/128 (375kHz) これ以外の値を指定しないこと
|
- 覚え書き
- デフォルトの分周比は不明
- 戻り値
- なし
SPIのデータモードを指定する
- 引数
-
mode | データモード
- SPI_MODE0 アイドル時のクロックがL、立ち上がりでサンプリング(基本)
- SPI_MODE1 アイドル時のクロックがL、立ち下がりでサンプリング
- SPI_MODE2 アイドル時のクロックがH、立ち上がりでサンプリング
- SPI_MODE3 アイドル時のクロックがH、立ち下がりでサンプリング
|
- 覚え書き
- デフォルトのモードは0
- 警告
- モード2とモード3に設定したときには、SDMMCが使えなくなる
- 戻り値
- なし
unsigned long CSPI::transfer |
( |
unsigned long |
txdata | ) |
|
SPIのデータを送受信する
- 引数
-
- 覚え書き
- Arduinoでは8bitまでだったが、RXduinoでは32bitまで対応している
- 戻り値
- 受信したデータ