1. ハードウェアシリアルポート
PC で最も一般的なシリアル通信プロトコルは RS-232 シリアル プロトコルですが、さまざまなマイクロコントローラ (シングルチップ マイクロコンピュータ) では TTL シリアル プロトコルが使用され、相互に通信します。
Arduino Uno R3 開発ボードでは、ハードウェア シリアル ポートは Rx(0) ピンと Tx(1) ピンにあり、Arduino の USB ポートは変換チップを介してこれら 2 つのピンに接続されています。変換チップは、USB インターフェイスを介して PC 上で Arduino 通信用のシリアル ポートを仮想化し、シリアル ポートを介してプログラムをダウンロードします。
2. 関連機能の紹介
Arduinoが提供するシリアル通信機能は非常に豊富ですので、詳しくはArduino公式サイトのシリアルポートユーザーガイド(https://www.arduino.cc/reference/ja/ language/functions/communication/serial/)を参照してください。 )
Serial.begin()
の説明: 通常、setup() 関数に配置されるシリアル ポートを開きます。
Serial.begin(速度)
Serial.begin(速度, 構成)パラメータ:
速度: ボーレート、一般的な値は 9600、115200 などです。
config: データ ビット、パリティ ビット、ストップ ビットを設定します。デフォルトの SERIAL_8N1 は、8 データ ビット、パリティ ビットなし、および 1 ストップ ビットを意味します。
戻り値: なし。
Serial.end()
の説明: シリアル ポート送信を禁止します。このとき、シリアル ポート Rx および Tx はデジタル IO ピンとして使用できます。
プロトタイプ: Serial.end()
パラメータ: なし。
戻り値: なし。
Serial.print()
説明: シリアルポートからデータを出力し、シリアルポートに文字データを書き込みます。
プロトタイプ:
Serial.print(val)
Serial.print(val, format)パラメータ:
val: 出力する値、任意のデータ型。
config: 出力データ形式。BIN (2 進数)、OCT (8 進数)、DEC (10 進数)、HEX (16 進数)。浮動小数点数の場合、このパラメータは使用する小数点以下の桁数を指定します。
Serial.println()
の説明: シリアル出力データと改行。
プロトタイプ:
Serial.println(val)
Serial.println(val, format)パラメータ:
val: 出力する値、任意のデータ型。
config: 出力データ形式。
戻り値: 書き込まれたバイト数を返します。
Serial.available()
説明: シリアル ポート バッファのステータスを確認し、シリアル ポート バッファから読み取ったバイト数を返します。
プロトタイプ: Serial.available()
パラメーター: なし。
戻り値: 読み取れるバイト数。
Serial.read()
説明: シリアル ポート データを 1 文字ずつ読み取り、読み取り後に読み取ったデータを削除します。
プロトタイプ: Serial.read()
パラメーター: なし。
戻り値: シリアル ポート バッファ内の最初の読み取り可能なバイトを返し、読み取り可能なデータがない場合は -1 を返します (整数型)。
Serial.readBytes()
説明: 指定された長さの文字をシリアル ポートからバッファ配列に読み取ります。
プロトタイプ: Serial.readBytes(バッファー、長さ)パラメータ:
バッファ: バッファ変数。
length: 設定された読み取り長。
戻り値: キャッシュに格納されている文字数を返します。
3. コードデモ
1. データ ケーブルを介して開発ボードをコンピュータに接続します。
2. 新しいコードを作成し、次のコードをコピーして自動生成されたコードと置き換えて保存します。
int incode = 0;
void setup() {
Serial.begin(9600); //设置串口波特率9600
Serial.println(78, BIN);// "1001110"
Serial.println(78, OCT);// "116"
Serial.println(78, DEC);// "78"
Serial.println(78, HEX);// "4E"
Serial.println(1.25486, 0);// "1"
Serial.println(1.23456, 2);// "1.23"
Serial.println(1.23456, 4);// "1.2346"
Serial.println("2111");// "2111"
Serial.println("Hello world.");// "Hello world."
}
void loop() {
if (Serial.available() > 0)//串口接收到数据
{
incode = Serial.read();//获取串口接收到的数据
if (incode == 'A')
{
Serial.println("2111YYDS");
}
}
delay(100);
}
3. 対応するポート番号と開発ボードの種類を設定して、プログラムをダウンロードします。
4. シリアル ポート モニタを開き、ボー レートを 9600 に設定し、シリアル ポートの印刷情報を確認します。「A」を入力すると、シリアルポートは「2111YYDS」を返します。
出力
Daily "Big Pie":
希望の温度で人生のひだを平らにする