FITモジュール シリアル受信割り込み

こんにちは。

RX210で、FITモジュールのSCIを使用しています。

受信完了を通知するコールバック関数など用意し、受信割り込みはできている状態です。

ただ、気になることがひとつあり、R_SCI_RECEIVE()にてコールバック関数の登録、受信するバイト数を指定しますが、この関数は戻り値でエラーを返しますよね。(指定バイト数分 受信バッファにないですと。)

サンプルではdo whileにて戻り値にて正常がかえるまで監視しているようですが、本モジュールの使い方はサンプルのように正常が帰るまで待機する。というふうになるのでしょうか。

私のイメージでは、最初に受信バイト数を指定し、指定したバイト数分受信が完了した場合にコールバック関数に飛ぶという感じです。

本モジュールの使い方を理解できていないのでしょうか。ご教授をお願い致します。

  • > R_SCI_RECEIVE()にてコールバック関数の登録、受信するバイト数を指定しますが、

    R_SCI_Receive() のことと思いますが、この関数はコールバック関数の登録は行いません。コールバック関数の登録は R_SCI_Open() で行います。

    > サンプルではdo whileにて戻り値にて正常がかえるまで監視しているようですが、本モジュールの使い方はサンプルのように正常が帰るまで待機する。というふうになるのでしょうか。
    > 私のイメージでは、最初に受信バイト数を指定し、指定したバイト数分受信が完了した場合にコールバック関数に飛ぶという感じです。

    R_SCI_Open() で登録したコールバック関数で 1バイト受信時の処理は行えるので、コールバック関数の処理次第では任意のバイト数を受信したら任意の処理を行うことも当たり前に可能です。受信エラーや何やらで想定したバイト数の受信ができないことは普通に考えられるので、タイムアウト等エラー処理は考慮する必要があります。FIT に限りませんがマニュアルに掲載されているサンプルプログラムは基本的な使い方を説明しているだけなので、エラー処理等はまともになされていない場合が大抵です。
  • fujita nozomuさん
    レスポンスありがとうございます。
    R_SCI_Receive()内で行われるエラー処理(指定バイト数分受信したかの確認) は使用しないことにしました。たしかにコールバック関数にて処理は可能なのでそれで対応したいと思います!
    ありがとうございました!