s=serial(PORT);
fclose(s);
s.status
fopen(s);
s.status
%%%%%%%%%%%%%%%利用找空格的方法,確保讀取串口值為正常有效值
f = 1;
N = 25;
while f <= N
Bstr = fscanf(s)
q = num2str(f);
index = find(Bstr==' ')
%if ( Bstr(1:(index(1)-2)) ~= ['x' q] | Bstr((index(3)+1):(index(4)-2)) ~= ['y' q] | Bstr((index(6)+1):(index(7)-2)) ~= ['z' q] )
if ( str2num(Bstr(1:(index(1)-2))) ~= str2num(['x' q]) | str2num(Bstr((index(3)+1):(index(4)-2))) ~= str2num(['y' q]) | str2num(Bstr((index(6)+1):(index(7)-2))) ~= str2num(['z' q]) )
f = 1;
continue;
end
len = length(index)
Bx(1,f) = str2num( Bstr( index(1):index(2) ) );
By(1,f) = str2num( Bstr( index(4):index(5) ) );
Bz(1,f) = str2num( Bstr( index(7):length(Bstr) ) );
if abs(Bx(f))>=4096 | Bx(f)==0 | abs(By(f))>=4096 | By(f)==0 | abs(Bz(f))>=4096 | Bz(f)==0
display('數(shù)據(jù)超范圍。');
return
end
f = f + 1;
end
|