是否可以使用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

如果您知道需要多少数据,可以通过预分配值数组来提高效率。