HardwareSerial::HardwareSerial()

概要

HardwareSerial()は、シリアル通信を行うためのオブジェクト(C++の変数)を生成するコンストラクタです。Arduino Unoでは、Serialというオブジェクトが自動的に生成されます。

HardwareSerialクラスは、Streamクラスを継承しています。Streamクラスは文字列ベースのストリームを実現するためのクラスで、available()やread()、peek()、flush()という関数のひな形(これらは、Streamクラスを継承したクラスで実装する必要があります)や、find()、findUntil()、parseInt()などの関数を提供しています。

Streamクラスは、Printクラスを継承しています。Printクラスは、文字の表示に関する機能を実現しています。1文字表示のためのwrite()関数を継承したクラスで最低限実装する必要があります。print()やprintln()を利用することができます。

HarawareSerialのコンストラクタは、オブジェクト内のメンバ変数を初期化します。

ソースコード

HardwareSerial()は、hardware/arduino/avr/cores/arduino/HardwareSerial_private.hに定義されています。以下に全ソースコードを示します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
HardwareSerial::HardwareSerial(
  volatile uint8_t *ubrrh, volatile uint8_t *ubrrl,
  volatile uint8_t *ucsra, volatile uint8_t *ucsrb,
  volatile uint8_t *ucsrc, volatile uint8_t *udr) :
    _ubrrh(ubrrh), _ubrrl(ubrrl),
    _ucsra(ucsra), _ucsrb(ucsrb), _ucsrc(ucsrc),
    _udr(udr),
    _rx_buffer_head(0), _rx_buffer_tail(0),
    _tx_buffer_head(0), _tx_buffer_tail(0)
{
}

コンストラクタに与えられた引数で、HardwareSerialクラスに定義された、クラス変数を初期化します。

バージョン

Arduino AVR Boards 1.8.6

ライセンス

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/*
  Copyright (c) 2016 garretlab.
  Added source code explanation by garretlab.
*/

/*
  HardwareSerial_private.h - Hardware serial library for Wiring
  Copyright (c) 2006 Nicholas Zambetti.  All right reserved.

  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 of the License, or (at your option) any later version.

  This library is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser General Public
  License along with this library; if not, write to the Free Software
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA

  Modified 23 November 2006 by David A. Mellis
  Modified 28 September 2010 by Mark Sproul
  Modified 14 August 2012 by Alarus
*/

最終更新日

July 31, 2025

inserted by FC2 system