Witam,
Staram się uruchomić odczyt danych z czujnika poprzez uC do MATLABA.
Niestety nie rozumiem pewnej sytuacji, w której uruchomienie komunikacji się nie udaje.
Taki kod:
s = serial('COM3');
set(s,'BaudRate',19200);
set(s,'Terminator','LF');
fopen(s);
fclose(s);
delete(s);
clear s;
skutkuje:
Error using serial/fopen (line 72)
Open failed: Port: COM3 is not available. No ports are available.
Use INSTRFIND to determine if other instrument objects are connected to the requested device.Error in test1 (line 12)
fopen(s);
użycie:
s = instrfind('Port','COM3');
Wyświetla listę wyglądającą tak:
- serial closed Serial-COM3
...- serial open Serial-COM3
- serial closed Serial-COM3
- serial closed Serial-COM3
ale nie rozwiązuje problemu.
Dopiero gdy znalazłem i dodałem taki warunek:
if isempty(s)
s = serial('COM3');
else
fclose(s);
s = s(1);
end
Komunikacja zostaje nawiązana.
Czy mógłby mi ktoś w prosty sposób wyjaśnić czemu przy pierwszej próbie nie wykrywa mi dostępnego portu COM3?
Co takiego robi ten warunek? Czym różnią się te porty z listy? Czemu większość z nich jest zamknięta a jeden otwarty i czym się one różnią?
Z góry dzięki za odp,
Piotrek