나는 그것을 켤 때 두 개의 숫자를 빠른 속도로 뱉어내는 감지기를 가지고있다. 하이퍼 터미널을 사용하여 데이터를 캡쳐했습니다.이 장치는 장치를 따라 잡을 수 있습니다.MATLAB 직렬 포트 연결이 너무 느리다
저는 프로세스를 자동화하고 Matlab을 통해 장치를 완전히 제어하려고했지만 절반 이하의 데이터가 Matlab에 도달한다는 것을 발견했습니다. 이 영역에서 Matlab의 속도와 관련하여 알려진 문제가 있습니까? 여기
내가 데이터를 읽기 위해 사용하고있는 작업은 다음과 같습니다s = serial('COM1', 'BaudRate', 115200, 'DataBits', 8, 'Terminator','CR/LF', 'InputBufferSize', 1024);
T1 = 1; % Initial T1, T2 values
T2 = 10000;
timer = 300;
% Inputs to serial device: T1, T2, runtime (seconds)
fprintf(s, sprintf('%d %d %d\r', T1, T2, timer));
tdata = zeros(1e5,2,'uint16');
data = fopen(sprintf('%s.txt',date_and_trial),'w');
tic;
while toc <= timer
% Read data into an array, and write to file.
if s.BytesAvailable >= 13
line = fgets(s);
if length(line) == 13
a = sscanf(line, '%u %u');
if length(a) == 2
tdata(i,1) = a(1);
tdata(i,2) = a(2);
fprintf(data, sprintf('%d %d\r', tdata(i,1), tdata(i,2)));
i++;
end
end
else
pause(0.01);
end
end
disp(toc);
fclose(s);
fclose(data);
fprintf('Finished!\r');
i를 조건문이 둔화 될 수 있지만, 그들은 또한 '%에서 일을 계속해야 할 것 같다 것을 생각해 봤는데 i % i \ n '형식이 필요합니다. 어쩌면 모든 데이터를 읽고 완료 한 후 처리하는 방법이 있을까요? 직렬 포트 공모에 'Terminator', 'CR/LF'
을 통과하기 때문에
그것은 절대적으로 그것을 고쳤다. 대단히 감사합니다. – parabol2112
@ parabol2112 -이 답변으로 문제가 해결되면 옆에있는 체크 표시를 눌러 공식적으로 수락하십시오. –