Я пытаюсь отправить данные датчика температуры из Arduino в Matlab с помощью последовательной связи. Данные о температуре отображаются на серийном мониторе Arduino, но я не смог получить данные в Matlab. Произошла следующая ошибка. Я перепробовал все возможные способы получения данных, поставив pause (3) перед fscanf, но он все еще не работает.
Предупреждение: неудачное чтение: истекло время ожидания до достижения терминатора , «серийный» не может прочитать какие-либо данные. Для получения дополнительной информации о возможных причинах см. Предупреждения о последовательном чтении. NaN
Мой код Matlab выглядит следующим образом
if ~isempty(instrfind)
fclose(instrfind);
delete (instrfind);
end
waitTime = 10;
s = serial('COM4','BAUD',9600);
waitTime = duration(0,waitTime,0);
t = datetime('now') - startTime;
while t < waitTime
fopen(s);
pause(3);
idn = fscanf(s);
fclose(s);
serialData = str2double(idn);
corrData = serialData;
disp(corrData);
end
clear a;
clear s;