PC から,リアルタイム信号処理を行っている Nucleo-F446 を制御する例.

Dependencies:   mbed SerialTxRxIntr F446_AD_DA_Multirate

Files at this revision

API Documentation at this revision

Comitter:
MikamiUitOpen
Date:
Wed Feb 05 08:45:41 2020 +0000
Parent:
12:c8a9978ff090
Child:
14:2f1af14e6c0d
Commit message:
14

Changed in this revision

SerialTxRxIntr.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/SerialTxRxIntr.lib	Mon Jan 27 07:44:05 2020 +0000
+++ b/SerialTxRxIntr.lib	Wed Feb 05 08:45:41 2020 +0000
@@ -1,1 +1,1 @@
-https://os.mbed.com/users/MikamiUitOpen/code/SerialTxRxIntr/#8cd3385cdee6
+https://os.mbed.com/users/MikamiUitOpen/code/SerialTxRxIntr/#deeef404ff49
--- a/main.cpp	Mon Jan 27 07:44:05 2020 +0000
+++ b/main.cpp	Wed Feb 05 08:45:41 2020 +0000
@@ -16,9 +16,8 @@
 //
 //  PC 側のプログラム
 //      F446_AD_DA_Ctrl
-//      端末エミュレータでも使用可能(ボーレート:9,600 baud)
 //
-//  2019/11/23, Copyright (c) 2019 MIKAMI, Naoki
+//  2020/02/05, Copyright (c) 2020 MIKAMI, Naoki
 //----------------------------------------------------------------------
 
 #include "F446_Multirate.hpp"
@@ -27,26 +26,21 @@
 #pragma diag_suppress 870   // マルチバイト文字使用の警告抑制のため
 
 using namespace Mikami;
-                        
-const int FS_ = 10000;          // 入力の標本化周波数: 10 kHz
-F446_Multirate myAdDa_;         // 出力標本化周波数を4倍にするオブジェクト
-SerialRxTxIntr rxTx_(32, 9600); // Serial クラスの受送信割込み用オブジェクト
-                                // ボーレート:9,600 baud
+
+const int FS_ = 10000;              // 入力の標本化周波数: 10 kHz
+F446_Multirate myAdDa_;             // 出力標本化周波数を4倍にするオブジェクト
+SerialRxTxIntr rxTx_(32, 115200);   // Serial クラスの受送信割込み用オブジェクト
+                                    // ボーレート:115,200 baud
 
 void SendParm(float param);             // パラメータの値を送信
 void Respond(bool &sw, float &param);   // 受信バッファのデータが有効になった場合の処理
 
 int main()
 {
-    printf("\r\n端末エミュレータでも使用可能\r\n");
-    printf("端末エミュレータから数値を入力する場合は 0 ~ 5000 の\r\n");
-    printf("範囲の数値を入力してください\r\n");
-    rxTx_.EchobackEnable();     // エコーバックを有効にする
-
     // 以下の割り込み優先順位の設定を忘れないこと
     NVIC_SetPriority(ADC_IRQn, 0);      // ADC 終了割り込み:最優先
     NVIC_SetPriority(USART2_IRQn, 1);   // USART2 割り込み:次に優先
-    
+
     float volume = 0.4f;    // 音量を決める変数(初期値)
     bool sw = true;
 
@@ -73,14 +67,14 @@
     string str = rxTx_.GetBuffer();
     if (str == "ENQ")
     {
-        rxTx_.Tx("ACK\n");  // PC からの "ENQ" に対して "ACK" を送信する
-        SendParm(param);    // 最初に Label に表示する文字列を送信
+        rxTx_.TxString("ACK\n");    // PC からの "ENQ" に対して "ACK" を送信する
+        SendParm(param);            // 最初に Label に表示する文字列を送信
 
         char buf[16];
         sprintf(buf, "S%5d\n", (uint32_t)(5000*param));
-        rxTx_.Tx(buf);      // 起動時のスライダ(TrackBar)の位置を送信
+        rxTx_.TxString(buf);        // 起動時のスライダ(TrackBar)の位置を送信
 
-       rxTx_.Tx("M入力信号をそのまま出力\n");
+        rxTx_.TxString("M入力信号をそのまま出力します.\n");
     }
     else    // "ENQ" 以外の処理
     {
@@ -107,5 +101,5 @@
     char buf[32];
     // Tera Term を使わない場合は,"\r" は無くても構わない
     sprintf(buf, "L音量: %3d %%\r\n", (int)(param*100));
-    rxTx_.Tx(buf);  // label1 に表示する文字列を送信
-}
+    rxTx_.TxString(buf);    // label1 に表示する文字列を送信
+}
\ No newline at end of file