serialport
シリアル ポートへの接続
説明
serialport
オブジェクトは、シリアル ポートと通信するためのシリアル クライアントを表します。オブジェクトの作成後、ドット表記を使用してプロパティを設定します。
作成
説明
は、s
= serialport(port
,baudrate
)port
で指定されたシリアル ポートにボー レート baudrate
で接続します。
はシリアル ポートに接続し、オプションの名前と値のペアを使用して追加のプロパティを設定します。s
= serialport(port
,baudrate
,Name,Value
)
引数のない
は、最後にクリアした s
= serialportserialport
オブジェクト インスタンスのプロパティ設定を使用してシリアル ポートに接続します。保持されるプロパティは、Port
、BaudRate
、ByteOrder
、FlowControl
、StopBits
、DataBits
、Parity
、Timeout
および Terminator
です。プロパティを参照してください。
入力引数
port
— シリアル ポート名
文字ベクトル | string スカラー
シリアル ポート名。文字ベクトルまたは string スカラーとして指定します。接続されているポートのリストを取得するには、serialportlist
を使用します。
例: "COM2"
baudrate
— ボー レート
double
シリアル通信のボー レート。double として指定します。
例: 9600
引数のオプションのペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name
を引用符で囲みます。
名前と値のペアを使用して、DataBits
、Parity
、StopBits
、FlowControl
、ByteOrder
および Timeout
オブジェクトのプロパティを設定できます。これらのデータ型と指定可能な値については、プロパティを参照してください。
例: "Timeout",30
プロパティ
オブジェクト作成プロパティ
Port
— 接続用シリアル ポート
string
この プロパティ は読み取り専用です。
接続用シリアル ポート。string として返されます。
例: "COM1"
データ型: string
BaudRate
— 通信速度
double
通信速度 (bit/s)。double の正の整数として返されます。
例: 14400
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Parity
— パリティ
"none"
(既定値) | "even"
| "odd"
データが失われたか書き込まれたかをチェックするためのパリティ。"none"
、"even"
または "odd"
として返されます。
例: "odd"
データ型: char
| string
DataBits
— データの 1 文字を表すビット数
8
(既定値) | 7
| 6
| 5
データの 1 文字を表すビット数。8
、7
、6
または 5
として返されます。
例: 8
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
StopBits
— 1 文字の終わりを示すビットのパターン
1
(既定値) | 1.5
| 2
1 文字の終わりまたは伝送全体の終わりを示すビットのパターン。1
、1.5
または 2
として返されます。
例: 1
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
FlowControl
— データ伝送速度の管理モード
"none"
(既定値) | "hardware"
| "software"
データ伝送速度の管理モード。"none"
、"hardware"
または "software"
として返されます。
例: "software"
データ型: char
| string
ByteOrder
— バイト順
"little-endian"
(既定値) | "big-endian"
大きい数値に複数のバイトを配置する順序。"little-endian"
または "big-endian"
として返されます。名前と値のペアの引数を使用して、オブジェクトの作成時にこのプロパティを設定します。ドット表記を使用して、オブジェクトを作成した後にプロパティを変更することもできます。
例: "little-endian"
データ型: char
| string
Timeout
— 操作完了までの許容時間
10 (既定値) | 数値
読み取り操作と書き込み操作の完了までの許容時間 (秒単位)。数値として返されます。名前と値のペアの引数を使用して、オブジェクトの作成時にこのプロパティを設定します。ドット表記を使用して、オブジェクトを作成した後にプロパティを変更することもできます。
例: 60
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Tag
— 接続を識別するためのラベル
""
(既定値) | string
R2024a 以降
接続を識別するためのラベル。string として指定します。Tag
は、後で serialportfind
を使用して接続にアクセスするときに使用できるラベルを接続に適用するために使用します。これを行うと、いずれかの関数で接続を開いているときに、別の関数を使用して接続の操作を実行する場合に役立つことがあります。また、アプリのコールバックで接続を特定してアクセスするのにも便利です。
例: "pSupply"
データ型: string
読み取りと書き込みのプロパティ
NumBytesAvailable
— 読み込みに使用できるバイト数
数値
この プロパティ は読み取り専用です。
読み取り可能なバイト数。数値として返されます。
例: 1024
データ型: double
NumBytesWritten
— デバイスに書き込まれたバイトの合計数
0 (既定値) | 数値
この プロパティ は読み取り専用です。
シリアル ポートに書き込まれるバイト数。数値として返されます。
例: 512
データ型: double
Terminator
— データの終端文字
"LF"
(既定値) | "CR"
| "CR/LF"
| 0 ~ 255
ASCII 終端データの読み取りと書き込みの終端文字。"LF"
、"CR"
、"CR/LF"
、または 0 ~ 255 (等値を含む) の数値として返されます。読み取りおよび書き込み終端文字が異なる場合、Terminator
は、これらの値の 1 行 2 列の cell 配列として返されます。このプロパティは、関数 configureTerminator
を使用して設定します。
例: "CR"
データ型: char
| string
コールバック プロパティ
BytesAvailableFcnMode
— コールバックのトリガー モードで使用できるバイト数
"off"
(既定値) | "byte"
| "terminator"
使用可能なバイト数のコールバック トリガー モード。"off"
、"byte"
または "terminator"
として返されます。この設定では、コールバックをオフにするか、BytesAvailableFcnCount
で指定されたバイト数でトリガーするか、または Terminator
で指定された終端文字でトリガーするかを決定します。このプロパティは、関数 configureCallback
を使用して設定します。
例: "off"
データ型: char
| string
BytesAvailableFcnCount
— コールバックをトリガーするデータのバイト数
64 (既定値) | 数値
BytesAvailableFcn
で指定されたコールバックをトリガーするデータのバイト数。double として返されます。この値は、BytesAvailableFcnMode
プロパティが "byte"
である場合にのみ使用されます。これらのプロパティは、関数 configureCallback
を使用して設定します。
例: 128
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
BytesAvailableFcn
— バイト利用可能なイベントでトリガーされるコールバック関数
関数ハンドル
バイト利用可能なイベントでトリガーされるコールバック関数。関数ハンドルとして返されます。バイト利用可能なイベントは、特定のバイト数または終端文字を受信して生成されます。このプロパティは、関数ハンドルを割り当てるまでは空です。このプロパティは、関数 configureCallback
を使用して設定します。
例: @myFcn
データ型: function_handle
ErrorOccurredFcn
— エラー イベントによりトリガーされるコールバック関数
関数ハンドル
エラー イベントによりトリガーされるコールバック関数。関数ハンドルとして返されます。非同期の読み取りまたは書き込みエラーが発生すると、エラー イベントが生成されます。このプロパティは、関数ハンドルを割り当てるまでは空です。
例: @myErrFcn
データ型: function_handle
UserData
— ユーザー データの汎用プロパティ
任意のタイプ
ユーザー データの汎用プロパティ。任意の MATLAB® データ型として返されます。たとえば、このプロパティを使用すると、コールバック関数からイベントがトリガーされるときにデータを保存できます。
例: datetime()
オブジェクト関数
read | シリアル ポートからのデータの読み取り |
readline | シリアル ポートからの ASCII 文字列データ行の読み取り |
write | シリアル ポートへのデータの書き込み |
writeline | シリアル ポートへの ASCII データ行の書き込み |
serialbreak | Send 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(s1)
接続が閉じていることを確認するには、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 で導入R2024a: 新しい Tag
プロパティ
新しい Tag
プロパティは、後で serialportfind
を使用して接続にアクセスするときに使用できるラベルを接続に適用するために使用します。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)