SPIのピン変化割り込みについて
ガレスタさんがポーリングでSPI通信している記事を見かけました
gsmcustomeffects.hatenablog.com
マイコン同士で通信したい時にポーリングで待ってると大変都合が悪い時などもあるので今回はピン変化割り込みでSPI通信をした件について書きます。
動作の流れとしては
マスター側
タイマー起動
↓
1msごとに割り込んで指定の値を吐く
スレーブ側
HAL_SPI_RxCpltCallback関数を呼び出しておく
↓
NSSピンがローになるとHAL_SPI_RxCpltCallback関数に飛ぶ
↓
HAL_SPI_Receive関数で値を取得
次に設定について
SPI通信する際にスレーブ側のチップセレクトにNSSピンを設定します。
あとはSPIのマスター側とスレーブ側でMSBスタート、ビット数を合わせて通信するだけです。
マスター側(1msごとにADCの値を送る)
スレーブ側(nssがローになると値を取得)