次のガイドでは、matlab を使用してシリアル ポートを開いて読み取る方法を示します。
そして、それは次のように行われます:
s = serial('COM1');
fopen(s)
fprintf(s,'*IDN?')
idn = fscanf(s);
fclose(s)
シリアル出力を継続的に取得してプロットするプログラムがあります。
figure
s = serial('COM11');
fopen(s)
while(true)
if (strcmp(comsStatus, 'open') == 1)
tline(i) = str2num(fgetl(s));
i = i+1
plot(tline(1:i-1))
drawnow
end
end
fclose(s)
私がやろうとしているのは、while ループから自動的に抜け出すことです。しかし、シリアル番号の送信がいつ停止したかを簡単に示すことはできないようです。fgetl(s) 部分は、実際に何かが来るまで待機します。これをタイムアウトする方法はありますか?これを行うより良い方法はありますか?