Serial.write()

Last revision:2025/06/13

名称

Serial.write()

説明

バイナリデータをシリアルポートに書き込む。このデータは、1バイトもしくはバイト列として送信される。数値を文字表現として送信したいときは、Serial.print()関数を利用すること。

書式

シリアルポートに無成型のデータを送信するには、以下の関数のいずれかを使う。

  • Serial.write(val)
  • Serial.write(str)
  • Serial.write(buf, len)

C言語シグネチャ(avr)

size_t HardwareSerial::write(uint8_t c); size_t HardwareSerial::write(const char *str); size_t HardwareSerial::write(const char *buffer, size_t size); size_t HardwareSerial::write(const uint8_t *buffer, size_t size);

引数

この関数は以下のオブジェクトと引数を受け付ける。

Serialシリアルポートオブジェクト。各ボードで利用可能なシリアルポートオブジェクトは、Serialを参照。
val, c
送信する値(1バイト)。
strバイト列として送信する文字列。
buf
バイト列として送信する配列。
len, size配列の大きさ。

戻り値

書き込んだバイト数。戻り値の利用はオプション。データ型: size_t

コード例

以下のコードは、Serial.write()の使い方を示す。

1
2
3
4
5
6
7
8
9
void setup() {
  Serial.begin(9600);
}

void loop() {
  Serial.write(45); // send a byte with the value 45

  int bytesSent = Serial.write("hello");  //send the string "hello" and return the length of the string.
}

注意

シリアル通信は非同期である。送信バッファに十分な空きスペースがある場合は、Serial.write()はシリアル回線で文字が送信される前にリターンする。送信バッファが満杯の場合は、Serial.write()は、バッファに十分な空きスペースができるまでブロックされる。Serial.wirte()時のブロッキングを避けるために、送信バッファに空きがあるかを確認するために、Serial.availableForWrite()を使うことができる。

オリジナルのページ

https://docs.arduino.cc/language-reference/en/functions/communication/serial/write/

実装の解析

HardwareSerial::write()

最終更新日

August 16, 2026

inserted by FC2 system