本页面提供的是上一版软件的文档。当前版本中已删除对应的英文页面。

串行端口通信快速入门

查询串行端口设备

此示例说明一些基本的串行端口命令。

注意

本示例在 Windows® 平台上显示。

如果您有设备连接到串行端口 COM1 并且已将波特率配置为 4800,请执行以下示例。

s = serialport("COM1",4800);
writeline(s,"*IDN?")
out = readline(s);
clear s

*IDN? 命令用于查询设备的标识信息,该信息将被返回到 out。如果您的设备不支持此命令,或者它被连接到其他串行端口,请相应地修改前述示例。

注意

*IDN? 是许多现代设备广泛使用的可编程仪器标准命令 (SCPI) 语言所支持的命令之一。请参阅您的设备文档,了解它是否支持 SCPI 语言。

串行端口会话

本示例描述从头到尾执行任何串行端口任务所用的步骤。

串行端口会话包含在与连接到串行端口的设备通信时可能需要执行的所有步骤。这些步骤包括:

  1. 找到您的串行端口 - 使用 serialportlist 函数显示系统上的串行端口列表。

  2. 连接到串行端口设备 - 使用 serialport 创建函数连接到设备的特定串行端口。

    如有必要,请在对象创建期间配置属性。特别是,您可能要配置与串行端口通信相关的属性,例如波特率、数据位数等等。通过配置属性值修改必要的设备设置,读取数据以及写入数据。

  3. 配置属性 - 要设置所需的串行端口对象行为,请使用圆点表示法为属性赋值。

    实际上,您可以随时(包括在对象创建期间或刚刚创建后)配置多种属性。反过来,根据您的设备设置和串行端口应用程序的要求,您可以接受默认属性值并跳过此步骤。

  4. 写入和读取数据 - 使用 writelinewrite 函数将数据写入设备,以及使用 readlineread 函数从设备读取数据。

    串行端口对象的行为取决于之前配置的属性值或默认属性值。

  5. 断开连接并清理 - 当您不再需要串行端口对象时,使用 clear 命令将其从 MATLAB® 工作区中删除。

串行端口会话在许多串行端口文档示例中得到了增强。要查看使用上述步骤的基本示例,请参阅查询串行端口设备

配置和返回属性

此示例说明如何显示串行端口属性名称和属性值,以及如何为属性赋值。

可通过配置属性值,建立所需的串行端口对象行为。您可以使用圆点表示法显示或配置属性值。

显示属性名称和属性值

创建串行端口对象后,点击 all properties 以在命令行中显示所有属性及其值。

s = serialport("COM1",4800);
s = 

Serialport with properties

                 Port: "COM1"
             BaudRate: 4800
    NumBytesAvailable: 0
      NumBytesWritten: 0

Show all properties

                      Port: "COM1"
                  BaudRate: 4800
         NumBytesAvailable: 0
           NumBytesWritten: 0

                 ByteOrder: "little-endian"
                  DataBits: 8
                  StopBits: 1
                    Parity: "none"
               FlowControl: "none"
                   Timeout: 10
                Terminator: "LF"

     BytesAvailableFcnMode: "off"
    BytesAvailableFcnCount: 64
         BytesAvailableFcn: []

          ErrorOccurredFcn: []
                  UserData: []

要显示一个属性的当前值,请使用圆点表示法提供该属性的名称。

s.BytesAvailableFcnCount
ans =

    64

配置属性值

您也可以使用圆点表示法来配置属性值。

s.BaudRate = 9600
s = 

Serialport with properties

                 Port: "COM1"
             BaudRate: 9600
    NumBytesAvailable: 0
      NumBytesWritten: 6

Show all properties

使用圆点表示法一次只能配置一个属性值。

实际上,在存在串行端口对象的情况下,您可以随时配置多个属性 - 包括在对象创建期间。但在对象已连接到设备或将信息记录到磁盘时,有些属性是不可配置的。有关哪些属性可配置的信息,请参阅 serialport

指定属性名称

串行端口属性名称使用混合大小写表示。尽管这让属性名称更易于阅读,但在指定属性名称时可使用任意大小写。例如,要配置 BaudRate 属性,可以指定:

s.BaudRate = 9600;
s.baudrate = 9600;

默认属性值

只要没有显式定义某个属性的值,便会使用默认值。所有可配置的属性都有默认值。

注意

您的操作系统将为所有串行端口设置(例如波特率)提供默认值。但这些设置会被您的 MATLAB 代码覆盖,并且不对您的串行端口应用程序产生任何影响。

您可以在 serialport 中查找任意属性的默认值。