写和读串口数据
完成写和读操作的规则
完成写操作
使用的写操作写
或writeline
当满足以下条件之一时完成:
写入指定的数据。
指定的时间
超时
属性传递。
只有当仪器接收到所需的终止符时,才对文本命令进行处理。对于串口对象,每次出现\ n
中的命令被替换为《终结者》
属性值。的默认值。《终结者》
换行字符。请参阅仪器的文档以确定仪器所需的终止符。
完成读操作
的读取操作读
或readline
当满足以下条件之一时完成:
读取指定数量的值。
指定的时间
超时
属性传递。控件指定的终止符
《终结者》
属性是阅读。
写和读文本数据
这个例子说明了如何通过写和读文本数据与串口仪器通信。
这个仪器是泰克®TDS 210双通道示波器连接到串口COM1。因此,示例中的许多命令都是针对该工具的。一个正弦波输入到示波器的通道2,你想测量输入信号的峰对峰电压。
这些函数和属性在读取和写入文本时使用。
请注意
这个例子是Windows®具体。
创建一个串口对象—创建串口对象
年代
与串口COM1相关联。s =串口(“COM1”, 9600);
读写数据- - -写
*申请?
命令到所使用的仪器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”
断开连接并清理—清除串口对象
年代
从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”);
断开连接并清理
如果完成了串口对象的处理,请从工作区中清除该对象。
清晰的年代