受信データの仕様によるUARTの受信方法
概要
UARTの受信フローは、受信データの仕様によって変わることがあります。受信データは以下の2つに分けられます。
- 固定長
- 可変長
固定長と可変長の特長と受信フローを説明します。
基本的な接続
以下のようにMicro:bitとWin PCとを接続します。なお、WIn PCはRS232Cテストツールをあらかじめインストールします。
受信フロー
受信フローは、以下の3つを示します。
- 固定長
- あるバイト数のデータを受信したら、受信したデータをそのまま送信する
- 可変長
- データを受信したら、受信したデータをそのまま送信する
- 改行までのデータを受信したら、受信したデータをそのまま送信する
固定長の受信データ
以下の順に説明します。
- 固定長の受信フロー
- コード
- 動作結果
固定長の受信フロー
4バイトのデータを受信したら、受信したデータをそのまま送信します。
コード
コードを以下に示します。
from microbit import * uart.init(baudrate=9600, bits=8, parity=None, stop=1) while True: if uart.any(): s = uart.read(4) uart.write(s) sleep(100)
動作結果
RS232Cテストツールの操作手順を以下に示します。
UART送受信の結果を以下に示します。
Micro:bitは4バイト分の電文を受信してそのまま送信したこと、受信バッファが空っぽになるまで送受信を繰り返していたことがわかります。
可変長(改行なし)の受信データ
以下の順に説明します。
- 可変長(改行なし)の受信フロー
- コード
- 動作結果
可変長(改行なし)の受信フロー
データを受信したら、受信したデータをそのまま送信します。
コード
コードを以下に示します。
from microbit import * uart.init(baudrate=9600, bits=8, parity=None, stop=1) while True: if uart.any(): s = uart.read() uart.write(s) sleep(100)
動作結果
RS232Cテストツールの操作手順を以下に示します。
UART送受信の結果を以下に示します。
Micro:bitはすべての電文を受信してそのまま送信したことがわかります。
可変長(改行あり)の受信データ
以下の順に説明します。
- 可変長(改行あり)の受信フロー
- コード
- 動作結果
可変長(改行あり)の受信フロー
データを受信したら、受信したデータをそのまま送信します。
コード
コードを以下に示します。
from microbit import * uart.init(baudrate=9600, bits=8, parity=None, stop=1) while True: if uart.any(): s = uart.readline() uart.write(s) sleep(100)
動作結果
RS232Cテストツールの操作手順を以下に示します。
UART送受信の結果を以下に示します。
Micro:bitは改行までの電文を受信してそのまま送信したこと、受信バッファが空っぽになるまで送受信を繰り返していたことがわかります。
※購入するときは、乾電池ボックス、USBケーブルが付いているか確認することをおすすめします。