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

Dependents:   F446_FunctionGenerator F446_UpSampling_GraphicEqualizer F446_UpSampling_ReverbSystem F446_UpSampling_FrqShifter_Weaver ... more

Revision:
11:7f5b88c8bd6a
Parent:
9:a90a9abeaea0
Child:
13:deeef404ff49
--- a/SerialTxIntr.cpp	Mon Jan 13 09:04:59 2020 +0000
+++ b/SerialTxIntr.cpp	Mon Jan 27 06:57:49 2020 +0000
@@ -4,7 +4,7 @@
 //
 //  ボーレートのデフォルト値は 9,600 boud
 //
-//  2018/09/28, Copyright (c) 2018 MIKAMI, Naoki
+//  2020/01/27, Copyright (c) 2020 MIKAMI, Naoki
 //-------------------------------------------------------------
 
 #include "SerialTxIntr.hpp"
@@ -12,7 +12,7 @@
 namespace Mikami
 {
 	// コンストラクタ
-	SerialTxIntr::SerialTxIntr(Serial &tx) : tx_(tx)
+	SerialTxIntr::SerialTxIntr(Serial &tx) : tx_(tx), USART_(USART2)
 	{
     	tx_.attach(callback(this, &SerialTxIntr::TxIsr), Serial::TxIrq);
 	}
@@ -20,14 +20,14 @@
 	// 送信データ書き込み
 	void SerialTxIntr::TxWrite(char c)
 	{
-    	USART2->CR1 &= ~USART_CR1_TXEIE;    // 送信割込み禁止
+    	USART_->CR1 &= ~USART_CR1_TXEIE;    // 送信割込み禁止
 	    // 送信レジスタ (DR) が空でかつ送信バッファが空かどうか調べる
     	if ( que_.empty() &&    // 両者が空の場合
-        	 ((USART2->SR && USART_SR_TXE_Msk) == USART_SR_TXE) )    
-	        USART2->DR = c;                 // 送信レジスタにデータを書き込む
+        	 ((USART_->SR && USART_SR_TXE_Msk) == USART_SR_TXE) )    
+	        Write(c);                 		// 送信レジスタにデータを書き込む
     	else                                // 少なくとも一方が空ではない場合
         	que_.push(c);                   // 送信バッファにデータを格納
-	    USART2->CR1 |= USART_CR1_TXEIE;     // 送信割込み許可
+	    USART_->CR1 |= USART_CR1_TXEIE;     // 送信割込み許可
 	}
 
 	// 文字列の送信
@@ -42,10 +42,10 @@
 	{
 	    if (!que_.empty())
     	{
-        	USART2->DR = que_.front();  // 送信用バッファから取り出したデータを送信レジスタへ書き込む
-	        que_.pop();                 // 先頭のデータを消去
+        	Write(que_.front());	// 送信用バッファから取り出したデータを送信レジスタへ書き込む
+	        que_.pop();             // 先頭のデータを消去
     	}
 	    else
-    	    USART2->CR1 &= ~USART_CR1_TXEIE;    // 送信割込み禁止
+    	    USART_->CR1 &= ~USART_CR1_TXEIE;    // 送信割込み禁止
 	}
 }
\ No newline at end of file