Arduino: シリアル通信

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":
希望の温度で人生のひだを平らにする

おすすめ

転載: blog.csdn.net/weixin_52051554/article/details/127521009