"串行" (RS-232 / RS-422 串行协议)
打开设备
-
可以给出以下选项:
-
"BaudRate" 9600 数据传输率(比特/秒) "DataBits" 8 每帧使用的数据位数 "Handshake" None 流控制握手协议 "IgnoreBreak" False 是否忽略中断 "Parity" None 设置校验位 "ReadBufferSize" 4096 读缓冲区的大小(字节) "StopBits" None 使用的停止位数 -
典型的波特率包括:4800、9600、19200、38400、57600、115200、230400.
-
"DataBits" 给出用于传送数据的每字节的位数. 可能的值为:5、6、7、8、9.
DeviceOpen["Serial"]
打开默认的串行端口.
DeviceOpen["Serial",name]
打开带有指定名称的串行端口. 在基于 Unix 的系统中一般的名称为 "/dev/ttyXX" 或 "/dev/tty.usbserialXX",在 Windows 中为 "COM1"、"COM2" 等.
DeviceOpen["Serial",opts]
打开带有指定选项的默认串行端口.
配置设备
-
不需要配置. 使用 DeviceOpen 为串行连接设置参数.
读取数据
-
Wolfram 语言函数例如 DeviceReadLatest 和 DeviceReadTimeSeries 也被支持.
-
在 Wolfram 语言中字节用整数值表示.
-
字节列表可以使用 FromCharacterCode 转换成字符串.
-
"ReadTerminator" 的设定可以是单个字节或字符.
-
如果没有数据可读,读函数在预设 10 秒后会超时.
DeviceRead[dev]
从串行连接读取单个字节,返回整数值.
DeviceRead[dev,"String"]
从串行连接读取单个字符,以字符串形式返回字符.
DeviceReadBuffer[dev]
读取串行连接缓冲区中的所有字节,返回整数列表.
DeviceReadBuffer[dev,n]
读取串行连接缓冲区中的最新 n 个字节.
DeviceReadBuffer[dev,"ReadTerminator"->term]
从串行端口缓冲区中读取字节直到结束符号 term.
写入数据
-
Wolfram 语言函数例如 DeviceWriteBuffer 也被支持.
-
字节可被指定为 0 到 255 间的整数或单个 ASCII 字符串.
DeviceWrite[dev,b]
把一个字节 b 编写入串行连接.
DeviceWrite[dev,{b1,b2,…}]
把一个字节列表 bi 编写入串行连接.
DeviceWrite[dev,"string"]
以字符串形式把字节写入串行连接.
执行命令
-
"SerialReadyQ" 命令可用于检查从串行连接读取是否被阻挡.
DeviceExecute[dev,"ReadFlush"]
刷新任何已读和缓冲的数据.
DeviceExecute[dev,"SerialReadyQ"]
关闭和释放资源
DeviceClose[dev]
关闭串行连接并释放相关资源.
相关指南
-
▪
- 使用连接设备
历史
2014年引入 (10.0)