Main Content

serialport

シリアル ポートへの接続

R2019b 以降

説明

serialport オブジェクトは、シリアル ポートと通信するためのシリアル クライアントを表します。オブジェクトの作成後、ドット表記を使用してプロパティを設定します。

作成

説明

s = serialport(port,baudrate) は、port で指定されたシリアル ポートにボー レート baudrate で接続します。

s = serialport(port,baudrate,Name,Value) はシリアル ポートに接続し、オプションの名前と値のペアを使用して追加のプロパティを設定します。

引数のない s = serialport は、最後にクリアした serialport オブジェクト インスタンスのプロパティ設定を使用してシリアル ポートに接続します。保持されるプロパティは、PortBaudRateByteOrderFlowControlStopBitsDataBitsParityTimeout および Terminator です。プロパティを参照してください。

入力引数

すべて展開する

シリアル ポート名。文字ベクトルまたは string スカラーとして指定します。接続されているポートのリストを取得するには、serialportlist を使用します。

例: "COM2"

シリアル通信のボー レート。double として指定します。

例: 9600

名前と値の引数

引数のオプションのペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name を引用符で囲みます。

名前と値のペアを使用して、DataBitsParityStopBitsFlowControlByteOrder および Timeout オブジェクトのプロパティを設定できます。これらのデータ型と指定可能な値については、プロパティを参照してください。

例: "Timeout",30

プロパティ

すべて展開する

オブジェクト作成プロパティ

この プロパティ は読み取り専用です。

接続用シリアル ポート。string として返されます。

例: "COM1"

データ型: string

通信速度 (bit/s)。double の正の整数として返されます。

例: 14400

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

データが失われたか書き込まれたかをチェックするためのパリティ。"none""even" または "odd" として返されます。

例: "odd"

データ型: char | string

データの 1 文字を表すビット数。876 または 5 として返されます。

例: 8

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

1 文字の終わりまたは伝送全体の終わりを示すビットのパターン。11.5 または 2 として返されます。

例: 1

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

データ伝送速度の管理モード。"none""hardware" または "software" として返されます。

例: "software"

データ型: char | string

大きい数値に複数のバイトを配置する順序。"little-endian" または "big-endian" として返されます。名前と値のペアの引数を使用して、オブジェクトの作成時にこのプロパティを設定します。ドット表記を使用して、オブジェクトを作成した後にプロパティを変更することもできます。

例: "little-endian"

データ型: char | string

読み取り操作と書き込み操作の完了までの許容時間 (秒単位)。数値として返されます。名前と値のペアの引数を使用して、オブジェクトの作成時にこのプロパティを設定します。ドット表記を使用して、オブジェクトを作成した後にプロパティを変更することもできます。

例: 60

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

R2024a 以降

接続を識別するためのラベル。string として指定します。Tag は、後で serialportfind を使用して接続にアクセスするときに使用できるラベルを接続に適用するために使用します。これを行うと、いずれかの関数で接続を開いているときに、別の関数を使用して接続の操作を実行する場合に役立つことがあります。また、アプリのコールバックで接続を特定してアクセスするのにも便利です。

例: "pSupply"

データ型: string

読み取りと書き込みのプロパティ

この プロパティ は読み取り専用です。

読み取り可能なバイト数。数値として返されます。

例: 1024

データ型: double

この プロパティ は読み取り専用です。

シリアル ポートに書き込まれるバイト数。数値として返されます。

例: 512

データ型: double

ASCII 終端データの読み取りと書き込みの終端文字。"LF""CR""CR/LF"、または 0 ~ 255 (等値を含む) の数値として返されます。読み取りおよび書き込み終端文字が異なる場合、Terminator は、これらの値の 1 行 2 列の cell 配列として返されます。このプロパティは、関数 configureTerminator を使用して設定します。

例: "CR"

データ型: char | string

コールバック プロパティ

使用可能なバイト数のコールバック トリガー モード。"off""byte" または "terminator" として返されます。この設定では、コールバックをオフにするか、BytesAvailableFcnCount で指定されたバイト数でトリガーするか、または Terminator で指定された終端文字でトリガーするかを決定します。このプロパティは、関数 configureCallback を使用して設定します。

例: "off"

データ型: char | string

BytesAvailableFcn で指定されたコールバックをトリガーするデータのバイト数。double として返されます。この値は、BytesAvailableFcnMode プロパティが "byte" である場合にのみ使用されます。これらのプロパティは、関数 configureCallback を使用して設定します。

例: 128

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

バイト利用可能なイベントでトリガーされるコールバック関数。関数ハンドルとして返されます。バイト利用可能なイベントは、特定のバイト数または終端文字を受信して生成されます。このプロパティは、関数ハンドルを割り当てるまでは空です。このプロパティは、関数 configureCallback を使用して設定します。

例: @myFcn

データ型: function_handle

エラー イベントによりトリガーされるコールバック関数。関数ハンドルとして返されます。非同期の読み取りまたは書き込みエラーが発生すると、エラー イベントが生成されます。このプロパティは、関数ハンドルを割り当てるまでは空です。

例: @myErrFcn

データ型: function_handle

ユーザー データの汎用プロパティ。任意の MATLAB® データ型として返されます。たとえば、このプロパティを使用すると、コールバック関数からイベントがトリガーされるときにデータを保存できます。

例: datetime()

オブジェクト関数

readシリアル ポートからのデータの読み取り
readlineシリアル ポートからの ASCII 文字列データ行の読み取り
writeシリアル ポートへのデータの書き込み
writelineシリアル ポートへの ASCII データ行の書き込み
serialbreakSend break to device connected to serial port
flushシリアル ポート デバイスのバッファーをクリア
configureTerminatorシリアル ポートとの ASCII 文字列通信の終端文字を設定
configureCallbackシリアル ポート デバイスと通信するためのコールバック関数とトリガー条件の設定
getpinstatusシリアル ピンのステータスの取得
setRTSシリアル RTS ピンをセット
setDTRシリアル DTR ピンをセット
deleteハンドル オブジェクトの削除
clearワークスペースからアイテムを削除し、システムメモリを解放

すべて折りたたむ

COM3 シリアル ポートから uint32 データ値を 16 個読み取ります。

s = serialport("COM3",9600,"Timeout",5);
data = read(s,16,"uint32");

スクリプトや MATLAB コマンド ラインで serialport を使用すると、オブジェクトで表される結果の接続が MATLAB ワークスペースに格納されます。

s1 = serialport("COM3",9600)
s1 = 

  Serialport with properties:

                 Port: "COM3"
             BaudRate: 9600
                  Tag: ""
    NumBytesAvailable: 0

同じ接続への参照が他の変数に存在しない場合は、そのワークスペース変数をクリアすることでシリアル ポートを切断できます。

clear(S)

接続が閉じていることを確認するには、serialportfind を使用します。

serialportfind
ans =

     []

serialport 接続が MATLAB ワークスペースに存在しているか、クラスのプロパティやアプリのプロパティとして保存されている場合、別の関数やアプリのコールバックで serialport オブジェクトにアクセスできないことがあります。この場合、serialportfind を使用して接続の検索と削除を行うことができます。

S = serialportfind
S = 

  Serialport with properties:

                 Port: "COM3"
             BaudRate: 9600
                  Tag: ""
    NumBytesAvailable: 0

この接続を閉じるには、S を削除します。

delete(S)

このコマンドにより、serialport オブジェクトが削除され、デバイスが切断されます。以降にデバイスに再接続する場合は、serialport で新しいインターフェイスを作成する必要があります。

削除後に serialportfind を呼び出して既存の接続がないことを確認できます。

serialportfind
ans =

     []

変数 S はワークスペースに残りますが、無効なハンドルになることに注意してください。

S
S = 

  handle to deleted Serialport

この変数がインターフェイスの削除後も残るのは、serialport"ハンドル オブジェクト" であるためです。(このタイプのオブジェクトの詳細については、ハンドル オブジェクトの動作を参照してください。)無効なハンドルは clear を使用してワークスペースから削除できます。

clear S

バージョン履歴

R2019b で導入

すべて展開する