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

Dependents:   F446_FunctionGenerator F446_UpSampling_GraphicEqualizer F446_UpSampling_ReverbSystem F446_UpSampling_FrqShifter_Weaver ... more

Revision:
5:151d281afa55
Parent:
4:fb847a82f735
Child:
6:8084247806a4
--- a/SerialTxIntr.cpp	Tue Sep 18 00:13:29 2018 +0000
+++ b/SerialTxIntr.cpp	Fri Sep 21 06:57:31 2018 +0000
@@ -4,44 +4,41 @@
 //
 //  ボーレートのデフォルト値は 9,600 boud
 //
-//  2018/09/18, Copyright (c) 2018 MIKAMI, Naoki
+//  2018/09/21, Copyright (c) 2018 MIKAMI, Naoki
 //-------------------------------------------------------------
 
 #include "SerialTxIntr.hpp"
 
 namespace Mikami
 {
-    // コンストラクタ
-    SerialTxIntr::SerialTxIntr(Serial &tx) : tx_(tx)
-    {
-        tx_.attach(callback(this, &SerialTxIntr::TxIsr), Serial::TxIrq);
-    }
+	// コンストラクタ
+	SerialTxIntr::SerialTxIntr(Serial &tx) : tx_(tx)
+	{
+    	tx_.attach(callback(this, &SerialTxIntr::TxIsr), Serial::TxIrq);
+	}
     
-    // 送信データ書き込み
-    void SerialTxIntr::TxWrite(char c)
-    {
-        USART2->CR1 &= ~USART_CR1_TXEIE;    // 送信割込み禁止
-        // 送信レジスタ (DR) が空でかつ送信バッファが空かどうか調べる
-        if ( que_.empty() &&    // 両者が空の場合
-             ((USART2->SR && USART_SR_TXE_Msk) == USART_SR_TXE) )    
-            USART2->DR = c;     // 送信レジスタにデータを書き込む
-        else                    // 少なくとも一方が空ではない場合
-            que_.push(c);       // 送信バッファにデータを格納
-        USART2->CR1 |= USART_CR1_TXEIE;     // 送信割込み許可
-    }
+	// 送信データ書き込み
+	void SerialTxIntr::TxWrite(char c)
+	{
+    	USART2->CR1 &= ~USART_CR1_TXEIE;    // 送信割込み禁止
+	    // 送信レジスタ (DR) が空でかつ送信バッファが空かどうか調べる
+    	if ( que_.empty() &&    // 両者が空の場合
+        	 ((USART2->SR && USART_SR_TXE_Msk) == USART_SR_TXE) )    
+	        USART2->DR = c;                 // 送信レジスタにデータを書き込む
+    	else                                // 少なくとも一方が空ではない場合
+        	que_.push(c);                   // 送信バッファにデータを格納
+	    USART2->CR1 |= USART_CR1_TXEIE;     // 送信割込み許可
+	}
     
-    // シリアルポート送信割込みサービスルーチン
-    void SerialTxIntr::TxIsr()
-    {
-        if (!que_.empty())
-        {
-            USART2->DR = que_.front();  // 送信用バッファから取り出したデータを送信レジスタへ書き込む
-            que_.pop();                 // 先頭のデータを消去
-        }
-        else
-            USART2->CR1 &= ~USART_CR1_TXEIE;    // 送信割込み禁止
-    }
-
-    // static メンバの実体の宣言/初期化
-    queue<char> SerialTxIntr::que_;
-}
+	// シリアルポート送信割込みサービスルーチン
+	void SerialTxIntr::TxIsr()
+	{
+	    if (!que_.empty())
+    	{
+        	USART2->DR = que_.front();  // 送信用バッファから取り出したデータを送信レジスタへ書き込む
+	        que_.pop();                 // 先頭のデータを消去
+    	}
+	    else
+    	    USART2->CR1 &= ~USART_CR1_TXEIE;    // 送信割込み禁止
+	}
+}
\ No newline at end of file