主要内容

写入和读取串行端口数据

完成写和读操作的规则

完成写入操作

使用写操作写道, 或者WriteBinblock.完成其中一个条件满足时:

  • 写入指定的数据。

  • 指定的时间超时属性传递。

只有当接收到所需的终止符时,仪器才会处理文本命令。对于串行端口对象,每次出现\ n在ASCII命令中替换为终结者适当的价值。默认值终结者是换行符。请参阅您的仪器的文档,以确定您的仪器所需的终止器。

完成阅读操作

读取操作读数, 或者readbinblock.完成其中一个条件满足时:

  • 读取指定的值数。

  • 指定的时间超时属性传递。

  • 由此指定的终结者终结者读取财产。

写入和读取文本数据

此示例说明了如何通过写入和读取文本数据与串行端口仪器进行通信。

这个仪器是Tektronix®tds210双通道示波器连接串口COM1。因此,示例中的许多命令都是特定于此仪器的。一个正弦波被输入到示波器的通道2,你想要测量输入信号的峰值电压。

在读写文本时使用这些函数和属性。

函数 目的
读数 从仪器中读取文本数据。
写道 将文本数据写入仪器。
终结者 用于终止发送到仪器的命令的字符。

笔记

此示例是Windows®具体。

  1. 创建串口对象- 创建串行端口对象S.与COM1串口关联。

    s = serialport(“COM1”,9600);
  2. 写入和读取数据- 写下* IDN?命令用来使用写道,然后读回命令的结果读数

    writeline(年代,“* IDN?”)s.numbytesavailable.
    ANS = 56.
    Idn = Readline(s)
    IDN =“Tektronix,TDS 210,0,CF:91.1CT FV:V1.16 TDS2CM:CMV:v1.04”

    您需要确定测量源。可能的测量源包括示波器的通道1和通道2。

    writeline(年代,“测量:立即:来源?”)source = readline
    源= " CH1 "

    范围被配置为从通道1返回测量。由于输入信号连接到通道2,您必须配置仪器以从该通道返回测量。

    writeline(年代,“测量:立即:源CH2”)写道(S,“测量:立即:来源?”)source = readline
    源= " CH2 "

    现在可以配置范围以返回峰值电压,然后请求此测量值。

    writeline(年代,“测量:MEAS1:类型PK2PK”)写道(S,“测量:Meas1:价值?”

    使用读取结果读数功能。

    ptop = readline(s)
    PTOP =“2.0199999809E0”
  3. 断开并清理- 清除串行端口对象S.从MATLAB®当你用它工作的时候。

    清晰的S.

读写二进制数据

此示例探讨了使用串行端口对象的二进制读写操作。使用的仪器是Tektronix®TDS210示波器。

功能和属性

读写二进制数据时使用这些功能。

函数 目的
从仪器读取二进制数据。
将二进制数据写入仪器。

配置和连接到串行对象

您需要创建一个串行对象。在此示例中,创建与COM1端口关联的串行端口对象。

s = serialport(“COM1”,9600);

写二进制数据

你用了将二进制数据写入仪器的功能。当满足其中一个条件时,二进制写操作完成:

  • 所有数据都是写的。

  • 的指定的超时发生超时财产。

笔记

当您执行写操作时,要根据值而不是字节来考虑传输的数据。一个值由一个或多个字节组成。例如,一个UINT32.值由四个字节组成。

正在写入Int16二进制数据

将波形写成int16大批。

写(s,“数据:目的地REFB”“细绳”);写(s,“数据:Encdg SRPbinary”“细绳”);写(s,“数据:宽度2”“细绳”);写(s,“数据:开始1”“细绳”);
t =(0:499)。* 8 * pi / 500;数据=圆形(SIN(T)* 90 + 127);写(s,“曲线# 3500”“细绳”);

注意一个int16值由两个字节组成。因此,以下命令写入1000字节。

写(s,数据,“int16”

阅读二进制数据

你用了从仪器读取二进制数据的功能。当满足其中一个条件之一时,二进制读取操作完成:

  • 的指定的超时发生超时财产。

  • 读取指定的值数。

笔记

执行读取操作时,请根据值而不是字节识别所接收的数据。一个值由一个或多个字节组成。例如,一个UINT32.值由四个字节组成。

阅读INT16二进制数据

在通道1上读取相同的波形作为int16大批。

阅读(s,“数据:源CH1”“细绳”);阅读(s,“数据:Encdg SRPbinary”“细绳”);阅读(s,“数据:宽度2”“细绳”);阅读(s,“数据:开始1”“细绳”);阅读(s,“数据:停止2500”“细绳”);阅读(s,“曲线?”“细绳”

注意一个int16值由两个字节组成。因此,以下命令读取512字节。

数据=读(S,256,“int16”);

断开和清理

如果您完成了串口对象的处理,请将该对象从工作区中清除。

清晰的S.