Nucleo ボードの USB コネクタに対応するシリアルポート受送信割込みで,複数のキャラクタ受送信をサポ-トするクラス. このライブラリを登録した際のプログラム: Demo_F446_AD_DA_Ctrl.
Dependents: F446_FunctionGenerator F446_UpSampling_GraphicEqualizer F446_UpSampling_ReverbSystem F446_UpSampling_FrqShifter_Weaver ... more
Diff: SerialRxTxIntr.cpp
- Revision:
- 2:f6e15c19dd75
- Parent:
- 1:09c07078126f
- Child:
- 3:63d7bf321ba2
--- a/SerialRxTxIntr.cpp Mon Jul 09 03:55:55 2018 +0000 +++ b/SerialRxTxIntr.cpp Mon Jul 09 08:58:06 2018 +0000 @@ -9,7 +9,7 @@ // コンストラクタ SerialRxTxIntr::SerialRxTxIntr(int maxChar, int baud) - : pc_(USBTX, USBRX, baud), tx_(pc_), buffer2_("") + : pc_(USBTX, USBRX, baud), tx_(pc_), buffer2_(""), echoOn_(false) { rxMax_ = maxChar; pc_.format(); // default: 8 bits, nonparity, 1 stop bit @@ -27,21 +27,23 @@ return true; } +// 文字列の送信 void SerialRxTxIntr::Tx(string str) { for (int n=0; n<str.size(); n++) tx_.TxWrite(str[n]); tx_.TxWrite('\n'); - } // シリアル・ポートの受信割り込みに対する割り込みサービス・ルーチン void SerialRxTxIntr::RxIsr() { unsigned char chr = pc_.getc(); - tx_.TxWrite(chr); // エコー・バック - if (chr == '\r') tx_.TxWrite('\n'); - + if (echoOn_) // エコーバックが有効な場合 + { + tx_.TxWrite(chr); // エコーバック + if (chr == '\r') tx_.TxWrite('\n'); + } // "\r" を受信した場合はメッセージの終了とする // "\r" は rxBuffer_ に追加されない if (chr == '\r') eol_ = true;