主要内容

读写串口数据

完成写和读操作的规则

完成写操作

使用writeline,或writebinblock满足下列条件之一时完成:

  • 写入指定的数据。

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

只有当仪器接收到所需的终止符时,才会处理文本命令。对于串口对象,每次出现\ n中的《终结者》属性值。的默认值《终结者》换行字符。请参考您的仪器文档,以确定您的仪器所需的终止符。

完成读操作

读取操作readline,或readbinblock满足下列条件之一时完成:

  • 读取指定数量的值。

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

  • 属性指定的终止符《终结者》属性被读取。

写入和读取文本数据

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

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

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

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

请注意

这个例子是Windows®具体。

  1. 创建一个串口对象—创建串口对象年代与COM1串口相关联。

    S =串口(“COM1”, 9600);
  2. 读写数据-编写*申请?命令对仪器使用writeline,然后读回命令使用的结果readline

    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(年代,“测量:im:源?”来源:阅读线(s)
    来源= "CH1"

    作用域被配置为从通道1返回测量值。因为输入信号连接到通道2,所以必须配置仪器从该通道返回测量值。

    writeline(年代,“测量:im: CH2源”) writeline(年代,“测量:im:源?”来源:阅读线(s)
    来源= "CH2"

    现在可以配置作用域以返回峰峰电压,然后请求该测量值。

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

    属性回读结果readline函数。

    Ptop = readline(s)
    ptop = "2.0199999809E0"
  3. 断开连接并清理—清除串口对象年代来自MATLAB®工作空间,当你完成它的工作。

    清晰的年代

二进制数据的读写

这个例子探讨了一个串行端口对象的二进制读写操作。使用的仪器是泰克®TDS 210示波器。

功能与属性

这些函数在读取和写入二进制数据时使用。

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

配置并连接到串行对象

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

S =串口(“COM1”, 9600);

写入二进制数据

你可以使用函数将二进制数据写入仪器。当满足以下条件之一时,二进制写操作完成:

  • 所有的数据都被写入。

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

请注意

当您执行写操作时,请从值而不是字节的角度考虑传输数据。一个值由一个或多个字节组成。例如,一个uint32Value由四个字节组成。

写入Int16二进制数据

将波形写成anint16数组中。

写(年代,“数据:目的地RefB”“字符串”);写(年代,“数据:Encdg SRPbinary”“字符串”);写(年代,“数据:宽度2”“字符串”);写(年代,“数据:开始1”“字符串”);
T = (0:499) .* 8 * PI / 500;数据=整数(sin(t) * 90 + 127);写(年代,“曲线# 3500”“字符串”);

注意这一点int16Value由两个字节组成。因此,下面的命令写入1000字节。

写(s、数据“int16”

读取二进制数据

你可以使用函数从仪器读取二进制数据。当满足以下条件之一时,二进制读操作完成:

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

  • 读取指定数量的值。

请注意

在执行读取操作时,从值而不是字节的角度考虑接收到的数据。一个值由一个或多个字节组成。例如,一个uint32Value由四个字节组成。

读取int16二进制数据

在通道1上读取与an相同的波形int16数组中。

读(年代,“数据:CH1源”“字符串”);读(年代,“数据:Encdg SRPbinary”“字符串”);读(年代,“数据:宽度2”“字符串”);读(年代,“数据:开始1”“字符串”);读(年代,“数据:停止2500”“字符串”);读(年代,“曲线?”“字符串”

注意这一点int16Value由两个字节组成。因此,下面的命令读取512字节。

数据= read(s,256,“int16”);

断开连接并清理

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

清晰的年代