データ送受信 (SPIモード用)
引数 |
説明 |
AG903_SSPMgrHandle* handle |
[in] SSPハンドル |
const void* tx_buf |
[in] データ送信先頭アドレス |
uint32_t tx_num |
[in] 送信サイズ(単位[Word] 下記参照) |
void * rx_buf |
[in] データ受信先頭アドレス |
uint32_t rx_num |
[in] 受信サイズ(単位[Word] 下記参照) |
送信結果
返値の詳細 |
説明 |
正常終了 | |
-AG903_EINVAL |
引数異常 |
-AG903_EPERM |
状態異常 (SPIモードではない等) |
SPIモードのときデータを全二重で送受信します。
送信と受信は同時に開始されます。
原則としてtx_numとrx_numは同じサイズにしてください。 デバイスによりますが一般的に送信データの後半は受信待ちのためのダミー、受信データの前半はコマンド送信中のための無効なデータとして運用されます。
この関数をSPIフラッシュ特化モードで使用した場合指定サイズでの送受信完了後も AG903_SSPMgrSpiDisableTransfer で停止するまで無効な送受信が継続します。
SPIモード以外では使用できません。
この関数は AG903_SSPMgrSpiEnableTransfer と組み合わせて使用します。
この関数からは完全に転送が完了するまで戻りません。 AG903_SSPMgrSpiSendReceiveDma の使用を推奨します。
転送完了時の AG903_SSPMgrSetCallback によるコールバックはRTOSのタスクモードで呼ばれます。
データワードのビット長とシリアライズについては AG903_SSPMgrSetSendBuf での説明と同様です。