以下指南展示了如何使用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)部分会一直等待,直到有实际数据传输。有办法设置超时吗?有更好的方法吗?
s.BytesAvailable
,并且只有当s.BytesAvailable
大于0时才调用fgetl
呢? - H.Muster