Nucleo ボードの USB コネクタに対応するシリアルポート受送信割込みで,複数のキャラクタ受送信をサポ-トするクラス. このライブラリを登録した際のプログラム: Demo_F446_AD_DA_Ctrl.
Dependents: F446_FunctionGenerator F446_UpSampling_GraphicEqualizer F446_UpSampling_ReverbSystem F446_UpSampling_FrqShifter_Weaver ... more
SerialTxIntr.hpp@14:268977533f95, 2021-04-12 (annotated)
- Committer:
- MikamiUitOpen
- Date:
- Mon Apr 12 11:49:16 2021 +0000
- Revision:
- 14:268977533f95
- Parent:
- 13:deeef404ff49
15
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MikamiUitOpen | 0:6b652858f92d | 1 | //------------------------------------------------------------- |
MikamiUitOpen | 0:6b652858f92d | 2 | // Nucleo ボードの USB コネクタに対応するシリアルポート送信割込みで |
MikamiUitOpen | 0:6b652858f92d | 3 | // キャラクタの送信をサポ-トするクラス |
MikamiUitOpen | 0:6b652858f92d | 4 | // |
MikamiUitOpen | 13:deeef404ff49 | 5 | // 2020/02/05, Copyright (c) 2020 MIKAMI, Naoki |
MikamiUitOpen | 0:6b652858f92d | 6 | //------------------------------------------------------------- |
MikamiUitOpen | 0:6b652858f92d | 7 | |
MikamiUitOpen | 0:6b652858f92d | 8 | #include "mbed.h" |
MikamiUitOpen | 0:6b652858f92d | 9 | #include <queue> |
MikamiUitOpen | 6:8084247806a4 | 10 | #include <string> |
MikamiUitOpen | 0:6b652858f92d | 11 | |
MikamiUitOpen | 0:6b652858f92d | 12 | #ifndef SERIAL_TX_INTR_HPP |
MikamiUitOpen | 0:6b652858f92d | 13 | #define SERIAL_TX_INTR_HPP |
MikamiUitOpen | 0:6b652858f92d | 14 | |
MikamiUitOpen | 4:fb847a82f735 | 15 | namespace Mikami |
MikamiUitOpen | 0:6b652858f92d | 16 | { |
MikamiUitOpen | 4:fb847a82f735 | 17 | class SerialTxIntr |
MikamiUitOpen | 4:fb847a82f735 | 18 | { |
MikamiUitOpen | 4:fb847a82f735 | 19 | public: |
MikamiUitOpen | 8:8f6e9351f313 | 20 | explicit SerialTxIntr(Serial &tx); // コンストラクタ |
MikamiUitOpen | 13:deeef404ff49 | 21 | void TxChar(char c); // 1文字の送信 |
MikamiUitOpen | 6:8084247806a4 | 22 | void TxString(string str); // 文字列の送信 |
MikamiUitOpen | 0:6b652858f92d | 23 | |
MikamiUitOpen | 4:fb847a82f735 | 24 | private: |
MikamiUitOpen | 5:151d281afa55 | 25 | Serial &tx_; // シリアルポートに対応するオブジェクトの参照 |
MikamiUitOpen | 10:6525f1c28ef6 | 26 | queue<char> que_; // FIFO による送信用バッファ |
MikamiUitOpen | 11:7f5b88c8bd6a | 27 | USART_TypeDef* const USART_; |
MikamiUitOpen | 0:6b652858f92d | 28 | |
MikamiUitOpen | 13:deeef404ff49 | 29 | // TDR へ書込み |
MikamiUitOpen | 13:deeef404ff49 | 30 | void WriteTDR(char ch) { USART_->DR = ch; } |
MikamiUitOpen | 13:deeef404ff49 | 31 | // 送信割込み許可 |
MikamiUitOpen | 13:deeef404ff49 | 32 | void EnableTxIntr() { USART_->CR1 |= USART_CR1_TXEIE; } |
MikamiUitOpen | 13:deeef404ff49 | 33 | // 送信割込み禁止 |
MikamiUitOpen | 13:deeef404ff49 | 34 | void DisableTxIntr() { USART_->CR1 &= ~USART_CR1_TXEIE; } |
MikamiUitOpen | 13:deeef404ff49 | 35 | // TDR が空の場合に true を返す |
MikamiUitOpen | 13:deeef404ff49 | 36 | bool IsTdrEmpty() |
MikamiUitOpen | 13:deeef404ff49 | 37 | { return (USART_->SR && USART_SR_TXE_Msk) == USART_SR_TXE; } |
MikamiUitOpen | 8:8f6e9351f313 | 38 | |
MikamiUitOpen | 13:deeef404ff49 | 39 | void TxIsr(); // シリアルポート送信割込みサービスルーチン |
MikamiUitOpen | 13:deeef404ff49 | 40 | |
MikamiUitOpen | 13:deeef404ff49 | 41 | // コピー・コンストラクタ,代入演算子の禁止のため |
MikamiUitOpen | 8:8f6e9351f313 | 42 | SerialTxIntr(const SerialTxIntr&); |
MikamiUitOpen | 8:8f6e9351f313 | 43 | SerialTxIntr& operator=(const SerialTxIntr&); |
MikamiUitOpen | 4:fb847a82f735 | 44 | }; |
MikamiUitOpen | 4:fb847a82f735 | 45 | } |
MikamiUitOpen | 9:a90a9abeaea0 | 46 | #endif // SERIAL_TX_INTR_HPP |