Matlab以最快的方式从串口读取数据

时间:2014-07-22 15:03:35

标签: matlab

我正在从串行设备读取数据,单个fscanf返回1行数据,大约需要0.02到0.05秒才能得到。这将是for循环,因为我需要阅读几千行,所以这将需要将近一分钟。

for ii = 1:n % n is number of lines to read
    tic
    data_set(1, ii) = fscanf(serial1);
    toc
end

是否有更快的方法从串口设备读取数据,因为对于我来说,几千行的分钟太慢了。

在上面的例子中,由tic toc定时的单个fscanf在0.02到0.05秒之间。当我阅读大约2000行时,可能需要将近一分钟。

1 个答案:

答案 0 :(得分:0)

不确定这是否会更快:

data_set = zeros(1, n);
for ii = 1:n
     data_set(1, ii) = str2num(fscanf(serial1))*[1 1i].';
end

请注意,即使有标题或尾随空格,str2num仍然有效。