# 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[]