UART¶
uart
モジュールを使用すると、シリアルインタフェースを使用してボードに接続されたデバイスと通信できます。
関数¶
-
microbit.uart.
init
(baudrate=9600, bits=8, parity=None, stop=1, *, tx=None, rx=None)¶ 指定の
tx
とrx
端子と指定のパラメータでシリアル通信を初期化します。正しい通信のためには、両方の通信デバイスでパラメータが同じでなければならないことに注意してください。警告
外部端子で UART を初期化すると、同じハードウェアを使っている USB で Python のコンソールにアクセスできなくなります。コンソールを元に戻すには、
tx
またはrx
を渡すことなく(あるいはこれらの引数にNone
を渡して)UART を再初期化する必要があります。つまり、uart.init(115200)
を呼び出すだけで、Python のコンソールを復元できます。baudrate
は通信速度を定義します。一般的なボーレートは次のとおりです:- 9600
- 14400
- 19200
- 28800
- 38400
- 57600
- 115200
bits
は送信するバイト列のサイズを定義します。現在のところはbits=8
だけをサポートしています。parity
パラメータはパリティのチェック方法を定義するもので、None
,microbit.uart.ODD
,microbit.uart.EVEN
を指定できます。stop
パラメータは、ストップビットの数を知らせるもので、このボードでは 1 にする必要があります。tx
とrx
を指定しない場合、内部の USB-UART TX/RX 端子を使用して micro:bit" の USB シリアルコンバータに接続し、UART を PC に接続します。望みの端子オブジェクトをtx
とrx
パラメータに渡すことにより、他の端子を使うように指定できます。注釈
デバイスを接続するときは、ワイヤを "交差させる" ことを確認してください。ボード上の TX 端子はデバイスの RX 端子と、RX 端子はデバイスの TX 端子と接続する必要があります。また、両方のデバイスのグランドピンが接続されていることを確認してください。
-
uart.
any
()¶ なにか待っているデータがあれば
True
を返し、さもなければFalse
を返します。
-
uart.
read
([nbytes])¶ バイト列を読み込みます。
nbytes
が指定されていれば、そのバイト数まで読み込みます。指定されていなければ、できるだけ多く読み込みます。戻り値: バイト列オブジェクト、タイムアウトが起きれば
None
。バイト列オブジェクトにはバイトの列が含まれます。ASCII 文字は1バイトに収めることができるので、このタイプのオブジェクトはしばしば単純なテキストを表現するために使われ、それをそのまま操作する方法を提供します。たとえば `` print()`` 関数を使ってテキストを表示できます。
このオブジェクトを文字列オブジェクトに変換することもできます。非 ASCII 文字が存在する場合は、エンコードを指定できます:
msg_bytes = uart.read() msg_str = str(msg, 'UTF-8')
注釈
すべての UART 読込みのタイムアウトはボーレートに依存していて、Pythonからは変更できません。タイムアウト値は次の式でミリ秒単位で決まります:
microbit_uart_timeout_char = 13000 / baudrate + 1
注釈
内部 UART RX バッファは 64 バイトなので、バッファがいっぱいになる前にデータを読み込んでください。さもないとデータが失われることになります。
警告
0x03
を受信すると、キーボード割り込みを起こしてプログラムを停止します。これを有効化/無効化するためにはmicropython.kbd_intr()
を使います。
-
uart.
readall
()¶ バージョン 1.0 から削除されました。
代わりに
uart.read()
を引数なしで使えば、できるだけ多くのデータを読み込みます。
-
uart.
readinto
(buf[, nbytes])¶ buf
にバイト列を読み込みます。nbytes
が指定されていれば、そのバイト数まで読み込みます。さもなければlen(buf)
のバイト数まで読み込みます。戻り値:
buf
に読み込んで格納したバイト数。タイムアウト時はNone
。
-
uart.
readline
()¶ 1行、すなわち改行文字まで読み込みます。
戻り値: 読み込んだ行。タイムアウト時は
None
。返すバイト列に改行文字は含まれます。
-
uart.
write
(buf)¶ バッファをバスにに書き出します。バッファはバイト列か文字列です:
uart.write('hello world') uart.write(b'hello world') uart.write(bytes([1, 2, 3]))
戻り値: 書き出したバイト数。タイムアウト時は
None
。