读写串口数据
完成写和读操作的规则
完成写操作
使用写
,writeline
,或writebinblock
满足下列条件之一时完成:
写入指定的数据。
方法指定的时间
超时
属性传递。
只有当仪器接收到所需的终止符时,才会处理文本命令。对于串口对象,每次出现\ n
中的《终结者》
属性值。的默认值《终结者》
换行字符。请参考您的仪器文档,以确定您的仪器所需的终止符。
完成读操作
读取操作读
,readline
,或readbinblock
满足下列条件之一时完成:
读取指定数量的值。
方法指定的时间
超时
属性传递。属性指定的终止符
《终结者》
属性被读取。
写入和读取文本数据
本例说明了如何通过写入和读取文本数据与串口仪器通信。
仪器是泰克的®tds210双通道示波器连接串口COM1。因此,示例中的许多命令都是特定于此工具的。一个正弦波输入到示波器的通道2,你想测量输入信号的峰值电压。
这些函数和属性在读取和写入文本时使用。
请注意
这个例子是Windows®具体。
创建一个串口对象—创建串口对象
年代
与COM1串口相关联。S =串口(“COM1”, 9600);
读写数据-编写
*申请?
命令对仪器使用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"
断开连接并清理—清除串口对象
年代
来自MATLAB®工作空间,当你完成它的工作。清晰的年代
二进制数据的读写
这个例子探讨了一个串行端口对象的二进制读写操作。使用的仪器是泰克®TDS 210示波器。
功能与属性
这些函数在读取和写入二进制数据时使用。
配置并连接到串行对象
您需要创建一个串行对象。在本例中,创建与COM1端口关联的串口对象。
S =串口(“COM1”, 9600);
写入二进制数据
你可以使用写
函数将二进制数据写入仪器。当满足以下条件之一时,二进制写操作完成:
所有的数据都被写入。
方法指定的超时发生
超时
财产。
请注意
当您执行写操作时,请从值而不是字节的角度考虑传输数据。一个值由一个或多个字节组成。例如,一个uint32
Value由四个字节组成。
写入Int16二进制数据
将波形写成anint16
数组中。
写(年代,“数据:目的地RefB”,“字符串”);写(年代,“数据:Encdg SRPbinary”,“字符串”);写(年代,“数据:宽度2”,“字符串”);写(年代,“数据:开始1”,“字符串”);
T = (0:499) .* 8 * PI / 500;数据=整数(sin(t) * 90 + 127);写(年代,“曲线# 3500”,“字符串”);
注意这一点int16
Value由两个字节组成。因此,下面的命令写入1000字节。
写(s、数据“int16”)
读取二进制数据
你可以使用读
函数从仪器读取二进制数据。当满足以下条件之一时,二进制读操作完成:
方法指定的超时发生
超时
财产。读取指定数量的值。
请注意
在执行读取操作时,从值而不是字节的角度考虑接收到的数据。一个值由一个或多个字节组成。例如,一个uint32
Value由四个字节组成。
读取int16二进制数据
在通道1上读取与an相同的波形int16
数组中。
读(年代,“数据:CH1源”,“字符串”);读(年代,“数据:Encdg SRPbinary”,“字符串”);读(年代,“数据:宽度2”,“字符串”);读(年代,“数据:开始1”,“字符串”);读(年代,“数据:停止2500”,“字符串”);读(年代,“曲线?”,“字符串”)
注意这一点int16
Value由两个字节组成。因此,下面的命令读取512字节。
数据= read(s,256,“int16”);
断开连接并清理
如果完成了串口对象的处理,请从工作区中清除该对象。
清晰的年代