I'm trying to open a serial port, but Matlab says it's not available. What can i do?
46 次查看(过去 30 天)
显示 更早的评论
Hi everyone, I know a lot of people already asked for this but i cannot find any solution. I've got an Arduino board connected to a serial port (COM5), but when i run fopen(serialobj) it fails saying that "COM5 is not available". I tried to open Arduino IDE and uploading another sketch on that port and it went well; even though I close the IDE matlab still gets the same error. I tried with INSTRFIND and the output was
Index: Type: Status: Name:
1 serial closed Serial-COM2
2 serial closed Serial-COM2
3 serial open Serial-COM5
4 serial closed Serial-COM5
5 serial closed Serial-COM3
6 serial closed Serial-COM5
7 serial closed Serial-COM3
8 serial closed Serial-COM3
9 serial closed Serial-COM3
The error message given by Matlab is this:
'Open failed: Port: COM5 is not available. No ports are available.↵Use INSTRFIND to determine if other instrument objects are connected to the requested device.'
Can someone help me? PS: Baudrate is 4800, the same as the one i set on Arduino.
1 个评论
Enrique Paredes Sánchez
2021-6-5
I had the same problem, it was due to another program was using the port. I closed it and then it solved.
回答(5 个)
Nim Pim
2021-5-2
编辑:Walter Roberson
2021-6-5
Disconnect and delete all the objects using "instrreset". Then it works.
Saurabh Gupta
2017-4-12
It looks like you already have the port open. You may want to fclose or delete it before trying to fopen it.
2 个评论
Peter Nelson
2019-3-26
Doesn't work for me. I tried inserting the solution provided in the answer from SG:
if ~isempty(instrfind)
fclose(instrfind);
delete(instrfind);
end
but I still get the error. The only fix is to leave and re-start Matlab.... sometimes several times before it allows me to open it with the serial command. In my case its a USB port. Any other ideas???
Davide Nicolò Fortunato
2019-4-19
I have the same problem, but i have an elegoo uno board. (the microcontroller is the same atmega of arduino uno).
i have yet tried
if ~isempty(instrfind)
fclose(instrfind);
delete(instrfind);
end
but nothing :(
0 个评论
Renner Josef
2019-6-4
Does work for me so far with an elegoo MEGA2560 R3.
Thanks for your help.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 MATLAB Support Package for Arduino Hardware 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!