串行通信管理器
说明
串行通信管理器创建与您计算机上的串行端口的连接。在连接到串行端口后,您可以与之通信,绘制和分析数据,将数据导出到工作区,并生成 MATLAB® 代码。
使用此 App,您可以:
配置串行端口通信属性。
向连接的串行端口发送二进制或字符串数据。
读取从连接的串行端口发送的二进制或字符串数据。
在图窗窗口中绘制数据。
通过在信号分析器中查看数据来分析数据。
将数据导出到工作区。
生成使用
serialport接口的 MATLAB 实时脚本文件。

打开 串行通信管理器 App
MATLAB 工具条:在 App 选项卡的测试和测量下,点击 App 图标。
MATLAB 命令提示符:输入
serialExplorer。
示例
在此示例中,向串行端口设备写入以 ASCII 字符结尾的数据并从其读回数据。此示例中的设备是 Arduino® Uno,已使用自定义命令和响应对其进行编程。
从 MATLAB 工具条的 App 选项卡或 MATLAB 命令提示符打开串行通信管理器。
选择您要与之通信的串行端口设备。在此示例中,设备连接到 COM4。

从属性检查器配置连接和通信属性。在写入和读取数据之前指定这些设备属性,以匹配所连接设备的适当值。对于此示例,将波特率更改为 38400。

某些串行端口设备可以接受字符串查询并对其做出响应。在此示例中,连接的 Arduino Uno 已编程为接收和响应自定义字符串命令。此示例中的命令不适用于其他设备。
向设备发送 Send Status? 命令。在写入部分中,将数据格式设置为以 ASCII 字符结尾的字符串。数据类型更改为字符串,因为这是唯一可能的选项。将要写入的数据指定为 Send Status?。点击写入以将数据写入串行端口设备。对于以 ASCII 字符结尾的字符串写入操作,由终止符属性指定的写入终止符会自动追加到正在写入的数据。

您可以通过从串行端口设备读取来查看对此命令的响应。在读取部分中,将数据格式设置为以 ASCII 字符结尾的字符串,这会将数据类型更改为字符串。通过点击读取从设备读取数据。一直读取数据,直到首次出现终止符。

在通信日志窗格中查看写入和读取操作。读取操作显示消息 Arduino connected to 'COM4'(连接到 'COM4' 的 Arduino)。您可以选择一个行,按照从通信日志导出数据并生成 MATLAB 脚本中的步骤将其作为变量导出到工作区。

MATLAB 代码日志窗格显示这些操作的代码。您可以按照从通信日志导出数据并生成 MATLAB 脚本中的步骤将以下代码导出为 MATLAB 实时脚本文件。

在此示例中,向串行端口设备写入以 ASCII 字符结尾的数据并从其读回数据。此示例中的设备是 Arduino Uno,已使用自定义命令和响应对其进行编程。
从 MATLAB 工具条的 App 选项卡或 MATLAB 命令提示符打开串行通信管理器。
选择您要与之通信的串行端口设备。在此示例中,设备连接到 COM4。

从属性检查器配置连接和通信属性。在写入和读取数据之前指定这些设备属性,以匹配所连接设备的适当值。对于此示例,将波特率更改为 38400。

某些串行端口设备可以接受字符串查询并对其做出响应。在此示例中,连接的 Arduino Uno 已编程为接收和响应自定义字符串命令。此示例中的命令不适用于其他设备。
向设备发送 Send Sine-Wave Data 命令。在写入部分中,将数据格式设置为以 ASCII 字符结尾的字符串。数据类型更改为字符串,因为这是唯一可能的选项。将要写入的数据指定为 Send Sine-Wave Data。点击写入以将数据写入串行端口设备。对于以 ASCII 字符结尾的字符串写入操作,由终止符属性指定的写入终止符会自动追加到正在写入的数据。

向设备发送另一条命令。在 MATLAB 命令提示符下,为此命令创建一个工作区变量。
command = "Send Arbitrary Waveform";选择工作区变量并选择 command 选项。点击写入。

在从串行端口设备读取数据之前,您必须指定正确的数据格式和类型。在此示例中,对字符串命令的响应以单精度二进制数据形式存储。在读取部分中,将数据格式设置为二进制,并将数据类型设置为单精度。可用的值数目参数为 300。前 100 个值是对 Send Sine-Wave Data 命令的响应,其余 200 个值是对 Send Arbitrary Waveform 命令的响应。
将要读取的值数目指定为 100。通过点击读取从串行端口设备读取前 100 个数据值。

如果您没有为要读取的值数目参数指定值,则可以读取所有可用值。通过清除要读取的值数目参数并点击读取来读取其余 200 个值。

在通信日志窗格中查看写入和读取操作。您可以选择一行来对其绘图,在信号分析器中查看它,或将其作为变量导出到工作区。选择从第一次读取操作得到的数据。

点击分析部分中的绘图。

将打开一个具有数据图的新图窗窗口。您可以从命令行窗口修改绘图和图窗。

选择另一个响应数据并再次点击绘图。将打开另一个具有数据图的新图窗窗口。

MATLAB 代码日志窗格将显示这些操作的代码(绘图创建除外)。您可以按照从通信日志导出数据并生成 MATLAB 脚本中的步骤将以下代码导出为 MATLAB 实时脚本文件。

在此示例中,在新图窗窗口中绘制通信日志中的一行数据。您可以绘制在串行端口中写入或读取的任何数值数据。
通信日志捕获您在连接的串行端口中写入或读取的所有数据。
选择一行数据。

点击分析部分中的绘图。

将打开一个具有数据图的新图窗窗口。您可以从命令行窗口修改绘图和图窗。

在此示例中,使用用于导出数据和 App 交互的不同选项。
通信日志捕获您在连接的串行端口中写入或读取的所有数据。
选择一行数据。

将此行数据作为在工作区变量中指定的变量导出到工作区。该 App 提供默认变量名称,但您可以编辑它。更改变量名称,点击导出,然后选择导出所选行选项。

您也可以将整个通信日志作为 timetable 导出到工作区。更改变量名称,点击导出,然后选择导出通信日志选项。

除了导出数据之外,您还可以从 MATLAB 代码日志窗格导出代码。此窗格包含您在 App 中所做的所有 serialport 对象创建、写入、读取和属性配置操作。

点击导出并选择生成 MATLAB 脚本选项,生成 MATLAB 实时脚本文件并在实时编辑器中打开它。

打开实时脚本文件后,您可以修改代码以满足您的需要并保存文件。
参数
“写入”部分
指定要写入串行端口的数据的数据类型。此参数确定对每个值要写入的字节数以及如何将这些字节解释为 MATLAB 数据类型。
依赖关系
如果将数据格式设置为以 ASCII 字符结尾的字符串,则此参数唯一可能的值是字符串。
仅当您选择工作区变量选项而不是要写入的数据时,此参数才可以设置为 uint64 或 int64。
指定要写入串行端口的数据。无论此参数中的格式如何,数据都以数据类型指定的类型写入。
选择此参数或工作区变量来写入数据。
选择一个现有工作区变量以写入串行端口。无论工作区中变量的数据类型如何,数据都以数据类型指定的类型写入。
如果数据格式是二进制,您可以选择以下类型的工作区变量:
数值的行向量 (1×
N) 或列向量 (N×1)1×
N字符向量1×1 字符串标量
如果数据格式是以 ASCII 字符结尾的字符串,您可以选择以下类型的工作区变量:
1×
N字符向量1×1 字符串标量
选择此参数或要写入的数据来写入数据。
点击此按钮可将要写入的数据或工作区变量中指定的数据作为指定的数据类型写入串行端口。如果数据格式是以 ASCII 字符结尾的字符串,则由 Terminator 属性指定的写入终止符会自动追加到正在写入的数据。
“读取”部分
指定要从串行端口读取的数据的数据类型。此参数确定对每个值要读取的字节数以及如何将这些字节解释为 MATLAB 数据类型。
依赖关系
如果将数据格式设置为以 ASCII 字符结尾的字符串,则此参数唯一可能的值是字符串。
将要读取的值数目指定为正整数。此参数必须小于或等于可用的值数目。如果将此参数留空,App 将使用指定的数据类型从串行端口读取所有可用值。
依赖关系
要启用此参数,请将数据格式设置为二进制。
此 参数 为只读。
这是以数据类型指定的格式可读取的值数目。
依赖关系
要启用此参数,请将数据格式设置为二进制。
点击此按钮可从串行端口读取数据。如果数据格式是二进制,则以数据类型指定的形式读取要读取的值数目指定的值数目。如果数据格式是以 ASCII 字符结尾的字符串,则一直读取数据,直到首次出现由 Terminator 属性指定的读取终止符。
“通信日志”部分
根据数据类型,以二进制、ASCII 或十六进制查看通信日志的数据列中的数据。此参数不会更改数据的原始值或数据类型。有关这些格式的详细信息,请参阅数据类型转换。
点击此按钮可清除通信日志的所有内容。
“分析”部分
点击此按钮可打开新图窗窗口,该窗口绘制通信日志中的当前选定数据。您只能选择一行数据,并且选定数据必须为数值类型。
与写入和读取不同,系统不会在 MATLAB 代码日志窗格中捕获此操作。
点击此按钮可启动信号分析器,并向其发送通信日志中的当前选定数据。您只能选择一行数据,并且选定数据必须为数值向量。
您必须安装 Signal Processing Toolbox™ 才能使用信号分析器。
导出部分
编辑您要将数据导出到的工作区变量的名称。导出下拉菜单中的导出所选行和导出通信日志选项会将您的数据作为在此字段中指定的变量保存到工作区。
您必须指定有效的 MATLAB 变量名称且该名称在工作区中尚不存在。如果您指定无效名称,它将自动更改为有效变量名称。
点击此按钮可选择以下选项之一以便从此 App 导出数据:
导出所选行 - 将通信日志中当前选定数据作为工作区变量指定的变量保存到工作区。
导出通信日志 - 将所有通信日志数据作为
timetable保存到工作区,变量名称为工作区变量指定的名称。生成 MATLAB 脚本 - 生成用 MATLAB 代码日志中的内容填充的 MATLAB 实时脚本文件,并在实时编辑器中打开它。
属性检查器
此 参数 为只读。
连接的串行端口的名称,以字符向量形式返回。
串行接口传输位的速率,以每秒位数为单位。您可以选择可用选项之一或指定您自己的值。
通过串行接口传输的数据位数。
用于指示字节结束的位数。
向串行端口传输的数据中添加的奇偶校验位类型。您可以使用此参数向数据添加奇偶校验位(也称为检查位)。向二进制代码字符串添加奇偶校验位是一种通过确保 1 位的总数为偶数或奇数来检测数据传输中错误的方法。
奇偶校验位的值由给定一组位中 1 的数目确定,设置如下。
| 奇偶校验位类型 | 奇偶校验位值 | |
|---|---|---|
| 如果 1 的个数为偶数 | 如果 1 的个数为奇数 | |
| none | 不设置奇偶校验位 | 不设置奇偶校验位 |
| even | 0 | 1 |
| odd | 1 | 0 |
管理串行端口数据传输速率的过程。选择 none 表示无流控制,选择 hardware 表示让硬件确定流控制,或选择 software 表示让软件确定流控制。
此 参数 为只读。
可读取的字节数,以数值形式返回。
用于读取和写入以 ASCII 字符结尾的数据的终止符字符,指定为 LF、CR、CR/LF 或 0 到 255 之间的数字。读取终止符后跟写入终止符,两者之间以逗号分隔。点击垂直省略号图标
可分别指定读取终止符和写入终止符字符值。
字节排列成较大数值的顺序。如果字节顺序为 little-endian,则串行端口将第一个字节存储在第一个内存地址中。如果字节顺序为 big-endian,则串行端口将最后一个字节存储在第一个内存地址中。
配置字节顺序以匹配串行端口的适当值。
允许完成读取操作的时间(以秒为单位),指定为数值。
版本历史记录
在 R2021b 中推出
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- 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)