是否可以使用matlab从串口读取数据?
Is it possible to read data from the serial port using matlab?
我正在从持续输出信息的传感器读取数据。我是 Matlab 的新手,所以我没有太多经验。我想修改下面的代码。
而不是总是调用 readline() 来获取数据我只想调用它一次并让它始终读取下一行数据。
``
S = serialport('COM5',115200);
data = readline(S);
temp= str2double(split(data,','));
data_2 = readline(S);
temp2 = str2double(split(data_2,','));
values= [temp,temp2];
``
输出:
18.110 24.140
17.200 24.110
0.550 0.740
0.490 0.670
我希望它始终读取数据,因为传感器始终处于打开状态。
提前致谢。
您可以使用 while 循环,将其设置为在您事先知道的某些条件(一段时间或数据量)下终止,或者如果您更愿意终止,则可以将其设置为永不终止通过键盘手动循环:
S = serialport('COM5',115200);
values = [];
while true
if S.NumBytesAvailable > 0
data = readline(S);
values = [values str2double(split(data,','))];
end
end
如果您知道需要多少数据,可以通过预分配值数组来提高效率。
我正在从持续输出信息的传感器读取数据。我是 Matlab 的新手,所以我没有太多经验。我想修改下面的代码。 而不是总是调用 readline() 来获取数据我只想调用它一次并让它始终读取下一行数据。 ``
S = serialport('COM5',115200);
data = readline(S);
temp= str2double(split(data,','));
data_2 = readline(S);
temp2 = str2double(split(data_2,','));
values= [temp,temp2];
`` 输出:
18.110 24.140 17.200 24.110 0.550 0.740 0.490 0.670
我希望它始终读取数据,因为传感器始终处于打开状态。
提前致谢。
您可以使用 while 循环,将其设置为在您事先知道的某些条件(一段时间或数据量)下终止,或者如果您更愿意终止,则可以将其设置为永不终止通过键盘手动循环:
S = serialport('COM5',115200);
values = [];
while true
if S.NumBytesAvailable > 0
data = readline(S);
values = [values str2double(split(data,','))];
end
end
如果您知道需要多少数据,可以通过预分配值数组来提高效率。