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

Dependencies:   mbed SerialTxRxIntr

Revision:
0:7ea2d228859d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Thu Sep 09 08:42:03 2021 +0000
@@ -0,0 +1,42 @@
+//------------------------------------------------------------------------------
+//  Nucleo-F446 と PC 間の通信を利用するプログラムの例
+//  マイコンボード上の LED の点滅のコントロール:起動時は点灯状態
+//      パソコンへデータを送信する際の終端コードは '\n'
+//
+//  2021/07/04, Copyright (c) 2021 MIKAMI, Naoki
+//------------------------------------------------------------------------------
+
+#include "SerialRxTxIntr.hpp"
+using namespace Mikami;
+
+int main()
+{
+    DigitalOut myLed(LED1, 1);  // LED に対応する出力ポート
+    SerialRxTxIntr rxTx;        // PC との通信用,ボーレート:9600 baud
+    bool blinking = false;
+
+    while (true)
+    {
+        // 受信バッファのデータが有効であれば,送信された指令に対応する処理を行う
+        if (rxTx.IsEol())
+        {
+            string str = rxTx.GetBuffer();  // 受信データ
+
+            // "LED_CTRLer" の受信に対して "ACK" を送信
+            if (str == "LED_CTRLer")
+                rxTx.TxString("ACK\n");
+            else    // "LED CTRLer" 以外の受信に対する処理
+            {
+                if (str == "ON")  blinking = true;
+                if (str == "OFF") blinking = false;
+                
+                rxTx.TxString(str + "\n");  // 受信した文字列をそのまま送信
+            }
+        }
+        if (blinking)
+        {
+            myLed = !myLed; // LED の点灯/消灯の切り替え
+            wait(0.1);      // 0.1秒のウェイト
+        }
+    }
+}
\ No newline at end of file