
パソコンからマイコンボード上の LED の点滅をコントロールする. このプログラムの説明は,CQ出版社「トランジスタ技術」の2021年10月号から開始された連載記事「STM32マイコンではじめるPC計測」の中にあります.このプログラムといっしょに使うPC側のプログラムについても同誌を参照してください.
Dependencies: mbed SerialTxRxIntr
Revision 0:7ea2d228859d, committed 2021-09-09
- Comitter:
- MikamiUitOpen
- Date:
- Thu Sep 09 08:42:03 2021 +0000
- Commit message:
- 1
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/SerialTxRxIntr.lib Thu Sep 09 08:42:03 2021 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/MikamiUitOpen/code/SerialTxRxIntr/#268977533f95
--- /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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Thu Sep 09 08:42:03 2021 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/mbed_official/code/mbed/builds/65be27845400 \ No newline at end of file