FFT アナライザ このプログラムの説明は,CQ出版社「トランジスタ技術」の2021年10月号から開始された連載記事「STM32マイコンではじめるPC計測」の中にあります.このプログラムといっしょに使うPC側のプログラムについても同誌を参照してください.

Dependencies:   Array_Matrix mbed SerialTxRxIntr DSP_ADDA UIT_FFT_Real Window

Revision:
0:e5fc70976c00
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/XferBase.hpp	Thu Sep 09 08:52:33 2021 +0000
@@ -0,0 +1,49 @@
+//---------------------------------------------------------------------
+//  データを PC へ転送するための抽象基底クラス
+//
+//  2021/07/11, Copyright (c) 2021 MIKAMI, Naoki
+//---------------------------------------------------------------------
+
+#include <string>
+#include "SerialRxTxIntr.hpp"
+using namespace Mikami;
+
+#ifndef XFER_ABSTRACT_BASE_HPP
+#define XFER_ABSTRACT_BASE_HPP
+
+class XferBase
+{
+public:
+    // コンストラクタ
+    XferBase(SerialRxTxIntr& rxTx, int size)
+        : SIZE_(size), xn_(size), rxTx_(rxTx) {}
+
+    // データを PC へ転送(0 ~ 10,000 の範囲の値を 2 文字で表すコード化を利用)
+    void ToPC(const float data[])
+    {
+        Convert(data);
+        string str = "";
+        for (int n=0; n<SIZE_; n++)
+        {
+            str += ((xn_[n] >> 7) & 0x7F) + 0x10;
+            str += (xn_[n] & 0x7F) + 0x10;
+        }
+        rxTx_.TxString(str+"\n");
+    }
+
+protected:
+    const int SIZE_;        // PC に送るデータの数
+    Array<uint16_t> xn_;    // PC に送るデータ
+
+private:
+    SerialRxTxIntr& rxTx_;
+
+    // データを転送する際の形式に変換
+    //      data    元のデータ
+    virtual void Convert(const float data[]) = 0;
+
+    // コピー・コンストラクタおよび代入演算子の禁止のため
+    XferBase(const XferBase&);
+    XferBase& operator=(const XferBase&);
+};
+#endif  // XFER_ABSTRACT_BASE_HPP
\ No newline at end of file