主要内容

写和读串口数据

完成写和读操作的规则

完成写操作

使用的写操作writeline当满足以下条件之一时完成:

  • 写入指定的数据。

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

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

完成读操作

的读取操作readline当满足以下条件之一时完成:

  • 读取指定数量的值。

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

  • 控件指定的终止符《终结者》属性是阅读。

写和读文本数据

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

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

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

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

请注意

这个例子是Windows®具体。

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

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

    writeline(年代,“* IDN ?”) s.NumBytesAvailable
    ans = 56
    idn = readline ()
    idn = "泰克,TDS 210,0,CF:91.1CT FV:v1.16 TDS2CM:CMV:v1.04"

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

    writeline(年代,“测量:im:源?”source = readline(s)
    源= " CH1 "

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

    writeline(年代,“测量:im: CH2源”) writeline(年代,“测量:im:源?”source = readline(s)
    源= " CH2 "

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

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

    方法回读结果readline函数。

    ptop = readline ()
    ptop = 2.0199999809“e0”
  3. 断开连接并清理—清除串口对象年代从MATLAB®完成工作后的工作区。

    清晰的年代

写入和读取二进制数据

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

功能和属性

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

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

配置并连接到串行对象

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

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

写入二进制数据

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

  • 所有的数据都被写入。

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

请注意

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

写入Int16二进制数据

把波形写成int16数组中。

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

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

写(s、数据“int16”

读二进制数据

您使用从仪器中读取二进制数据的功能。当满足以下条件之一时,二进制读操作完成:

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

  • 读取指定数量的值。

请注意

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

读取int16二进制数据

从1号通道读取相同的波形int16数组中。

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

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

data =阅读(年代,256,“int16”);

断开连接并清理

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

清晰的年代