
私は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 の以前の設定をすべて削除します。