Nucleo ボードの USB コネクタに対応するシリアルポート受送信割込みで,複数のキャラクタ受送信をサポ-トするクラス. このライブラリを登録した際のプログラム: Demo_F446_AD_DA_Ctrl.
Dependents: F446_FunctionGenerator F446_UpSampling_GraphicEqualizer F446_UpSampling_ReverbSystem F446_UpSampling_FrqShifter_Weaver ... more
SerialTxIntr.hpp
- Committer:
- MikamiUitOpen
- Date:
- 2020-02-05
- Revision:
- 13:deeef404ff49
- Parent:
- 12:8cd3385cdee6
File content as of revision 13:deeef404ff49:
//------------------------------------------------------------- // Nucleo ボードの USB コネクタに対応するシリアルポート送信割込みで // キャラクタの送信をサポ-トするクラス // // 2020/02/05, Copyright (c) 2020 MIKAMI, Naoki //------------------------------------------------------------- #include "mbed.h" #include <queue> #include <string> #ifndef SERIAL_TX_INTR_HPP #define SERIAL_TX_INTR_HPP namespace Mikami { class SerialTxIntr { public: explicit SerialTxIntr(Serial &tx); // コンストラクタ void TxChar(char c); // 1文字の送信 void TxString(string str); // 文字列の送信 private: Serial &tx_; // シリアルポートに対応するオブジェクトの参照 queue<char> que_; // FIFO による送信用バッファ USART_TypeDef* const USART_; // TDR へ書込み void WriteTDR(char ch) { USART_->DR = ch; } // 送信割込み許可 void EnableTxIntr() { USART_->CR1 |= USART_CR1_TXEIE; } // 送信割込み禁止 void DisableTxIntr() { USART_->CR1 &= ~USART_CR1_TXEIE; } // TDR が空の場合に true を返す bool IsTdrEmpty() { return (USART_->SR && USART_SR_TXE_Msk) == USART_SR_TXE; } void TxIsr(); // シリアルポート送信割込みサービスルーチン // コピー・コンストラクタ,代入演算子の禁止のため SerialTxIntr(const SerialTxIntr&); SerialTxIntr& operator=(const SerialTxIntr&); }; } #endif // SERIAL_TX_INTR_HPP