2026a

# serialport


建立串口连接

函数库:TyInstrumentControl

# 描述

一个 serialport 对象代表一个用于与串行端口通信的串行客户端。创建对象后,使用点表示法来设置其属性。

# 构造

# 语法

device = serialport(port, baud)
device = serialport(port, baud; Name = value)

# 说明

device = serialport(port, baud) 以 baud 指定的波特率连接到由 port 指定的串行端口。

device = serialport(port, baud; Name = value) 连接到串行端口,并使用可选的名称 - 值对参数设置其他属性。

# 输入参数

port - 串口名
字符串

串口名,指定为字符串。使用 serialportlist 函数获取已连接端口的列表。

示例: "COM2"

baud - 波特率
正整数

串行通信的波特率,指定为一个正整数。

示例: 9600

名称 - 值参数对

指定可选的、以逗号分隔的 Name,Value(名称 - 值)对参数。其中,Name 是参数名称,Value 是其对应的值。Name 必须出现在引号内。您可以按任意顺序指定多个名称 - 值对参数,格式为 Name1=Value1,...,NameN=ValueN。

# 属性

Port - 用于连接的串行端口
String

用于连接的串行端口,以字符串形式返回。

示例: "COM1"

数据类型: String

BaudRate - 通信速度
Int

以每秒比特数表示的通信速度,以一个正整数双精度值返回。

示例: 14400

数据类型: Int

Timeout - 允许完成操作的时间
10(默认)| 实数

允许完成读写操作的时间(以秒为单位),以一个数值返回。此属性可在对象创建时使用名称 - 值对参数设置,也可在对象创建后使用点表示法修改。

示例: 60

数据类型: Float64

ByteOrder
"little-endian"(默认)| "big-endian"

将字节组合成更大数值时的顺序,以 "little-endian"(小端序)或 "big-endian"(大端序)形式返回。此属性可在对象创建时使用名称 - 值对参数设置,也可在对象创建后使用点表示法修改。

示例: "little-endian"

数据类型: String

Parity - 奇偶校验位
"none"(默认)| "even" | "odd"

用于检查数据是否丢失或被覆盖的奇偶校验类型,以 "none"(无)、"even"(偶校验)或 "odd"(奇校验)形式返回。

示例: "odd"

数据类型: String

DataBits - 表示一个数据字符的位数
8(默认)| 7 | 6 | 5

表示一个数据字符的位数,以 8、7、6 或 5 返回。 示例: 8

数据类型: Int

StopBits - 指示一个字符结束的位模式
1(默认)| 2

指示一个字符或整个传输结束的位模式,以 1 或 2 返回。

示例: 1

数据类型: Int

FlowControl - 管理数据传输速率的模式
"none"(默认) | "hardware" | "software"

管理数据传输速率的模式,以 "none"(无)、"hardware"(硬件流控)或 "software"(软件流控)形式返回。 示例: "software"

数据类型: String

# 读写属性

NumBytesAvailable - 可供读取字节数
实数

此属性为只读。

可供读取的字节数,以数值形式返回。

示例: 1024

数据类型: Int

NumBytesWritten - 写入设备的总字节数
0(默认) | 实数

此属性为只读。

已写入串行端口的字节数,以数值形式返回。

示例: 512

数据类型: Int

Terminator - 数据的终止符
"LF"(默认)| "CR" | "CR/LF" | 0 - 255

用于读取和写入 ASCII 终止数据的终止符,以 "LF"(换行符)、"CR"(回车符)、"CR/LF"(回车换行符)或一个从 0 到 255(包含)的数字形式返回。如果读取和写入的终止符不同,则 Terminator 属性将返回一个包含这两个值的 1x2 元胞数组。请使用 configureTerminator 函数来设置此属性。

示例: "CR"

数据类型: String | Int

# 对象函数

函数名 简介
read 从串口读取数据
readline 从串口读取 ASCII 字符串数据行
readbinblock 从串口读取二进制数据块
write 向串口写入数据
writeline 向串口写入一行 ASCII 数据
writebinblock 向串口写入二进制数据块
writeread 向串口写入命令并读取响应
flush 刷新输入/输出缓冲区
configureTerminator 设置通过串口进行 ASCII 字符串通信的终止符
getpinstatus 获取串口引脚状态
setRTS 设置串口 RTS 引脚
setDTR 设置串口 DTR 引脚
serialportfind 查找串口设备
serialportlist 连接到系统的串口列表
close 关闭串口连接

# 示例

从串口读取数据

从 COM1 串行端口读取 16 个 UInt32 数据。(该示例需要 COM1 接收到数据才可运行)

using TyInstrumentControl
s = serialport("COM1", 9600; Timeout=5)
data = read(s, 16, UInt32)
关闭所有串口连接

连接 COM1 串行端口。

using TyInstrumentControl
s1 = serialport("COM1", 9600)
  Instserialport- Property:
                 Port: COM1
             BaudRate: 9600
    NumBytesAvailable: 0
            connected: true

通过 close 函数断开串口连接。

close(s1)

使用 serialportfind 确认连接已关闭。

serialportfind()
Instserialport[]

# 另请参阅

serialportfind | serialportlist | read | write