Nucleo ボードの USB コネクタに対応するシリアルポート受送信割込みで,複数のキャラクタ受送信をサポ-トするクラス.   このライブラリを登録した際のプログラム: Demo_F446_AD_DA_Ctrl.

Dependents:   F446_FunctionGenerator F446_UpSampling_GraphicEqualizer F446_UpSampling_ReverbSystem F446_UpSampling_FrqShifter_Weaver ... more

SerialRxTxIntr.hpp

Committer:
MikamiUitOpen
Date:
2018-09-07
Revision:
3:63d7bf321ba2
Parent:
2:f6e15c19dd75
Child:
4:fb847a82f735

File content as of revision 3:63d7bf321ba2:

//-------------------------------------------------------------
//  Nucleo ボードの USB コネクタに対応するシリアルポート受送信割込みで
//  複数のキャラクタ受送信をサポ-トするクラス
//
//  "\r" を受信した場合に,複数キャラクタの受信の終了とする
//  キャラクタの数はデフォルトで 32 まで
//
//  ボーレートのデフォルト値は 9,600 boud
//  Nucleo-F446RE の場合,ファームウェアの更新をしなくても
//  115,200 boud までは動作可能
//
//  2018/09/07, Copyright (c) 2018 MIKAMI, Naoki
//-------------------------------------------------------------

#include "mbed.h"
#include <string>
#include "SerialTxIntr.hpp"

class SerialRxTxIntr
{
public:
    SerialRxTxIntr(int maxChar = 32, int baud = 9600);

    // メッセージの終了であればそのメッセージを保存し true を返す
    bool IsEol();
    // バッファの内容を取得
    string GetBuffer() { return buffer2_; }
    // エコーバック ON
    void EchobackEnable() { echoOn_ = true; }
    // エコーバック OFF
    void EchobackDisable() { echoOn_ = false; }
    // 文字列の送信
    void Tx(string str, bool lf = true);

private:
    Serial pc_;
    SerialTxIntr tx_;

    static int rxMax_;          // 受信バッファのサイズ
    static __IO bool eol_;      // "\r" を受信した場合に true
    static string rxBuffer_;    // 受信バッファ
    string buffer2_;            // 受信バッファの内容を保存しておくバッファ
    bool echoOn_; 

    // シリアル・ポートの受信割り込みに対する割り込みサービス・ルーチン
    void RxIsr();
};