
Arduino와 MATLAB 사이에 직렬 통신을 설정하는 방법을 알고 싶습니다. 이것으로부터지도 시간코드를 복사했지만 내 PC에서는 "Windows"를 사용하므로 직렬 포트 이름을 변경해야 했습니다. 내 Arduino는 'COM4' 포트에 연결되어 있습니다.
그러나 코드를 실행하면 "열기 실패: 포트: COM4를 사용할 수 없습니다. 사용할 수 있는 포트가 없습니다."라는 오류 메시지가 나타납니다. 이것이 무엇을 의미하는지, 어떻게 문제를 해결해야 하는지 이해할 수 없습니다. 나는 인터넷에서 도움이 되는 것을 찾지 못했습니다. 저 좀 도와주실 수 있나요?
내 코드는 다음과 같습니다.
function [obj,flag]=setupSerial(comPort)
flag =1;
obj=serial(comPort);
set(obj,'DataBits',8);
set(obj,'StopBits',1);
set(obj,'BaudRate',9600);
set(obj,'Parity','none');
fopen(obj);
a='b';
while (a~='a')
a=fread(obj,1,'uchar');
end
if(a=='a')
disp('Serial Setup Complete');
end
fprintf(obj,'%c','a');
mbox = msgbox('Serial Communication setup'); uiwait(mbox);
fscanf(obj,'%u');
fclose(obj);
end
미리 감사드립니다.
답변1
귀하의 포트가 다른 채널에 사용되거나 열려 있을 수 있습니다. obj를 생성하기 전에 다음 줄을 삽입하세요.
delete(instrfind({'port'},{comPort}));
이 줄은 comPort의 이전 설정을 삭제합니다.