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

Dependents:   F446_FunctionGenerator F446_UpSampling_GraphicEqualizer F446_UpSampling_ReverbSystem F446_UpSampling_FrqShifter_Weaver ... more

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;