How to close serial port in R2019b
30 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
JAVIER BURGUES CALDERON
am 29 Okt. 2019
Kommentiert: James
am 12 Okt. 2023
Good morning,
I am porting my code to the new serialport() interface, but I have been unable to find how to close the serial port once I have finished reading from it.
What is the function to do that in R2019b?
Thanks,
Javier.
0 Kommentare
Akzeptierte Antwort
Walter Roberson
am 29 Okt. 2019
The new serialport() interface does not use fopen() or fclose() . You just delete the object to close it.
I prefer the fopen() / fclose() interface myself... but then I used to write modem control programs where it was common to want to configure a port and open and close it while not deleting it.
9 Kommentare
Walter Roberson
am 11 Jun. 2021
/Applications/MATLAB_R2021a.app/toolbox/matlab/serialport/+internal/Serialport.m handles delete() by clearing a stored InstrumentImpl object. Presumably the delete() method of InstrumentImpl takes care of the details of disconnecting the object. However the details are inside /Applications/MATLAB_R2021a.app/toolbox/shared/instrument/+instrument/+internal/InstrumentImpl.p which we cannot read.
The stored InstrumentImpl property is inside
properties (Hidden, Access = ...
{?internal.Serialport, ?instrument.internal.ITestable})
so you cannot get at the object. Not unless perhaps struct()
Will Reeves
am 1 Feb. 2023
Bearbeitet: Will Reeves
am 1 Feb. 2023
within a class with a serialport assigned to a property,
delete(obj.serialPortInstance)
doesn't seem to work for me. Could you let me know the correct syntax for clean deletion from within a class?
obj.serialPortInstance=[];
doesn't work for me either...
Thanks!
Weitere Antworten (2)
Michael Borovik
am 23 Mär. 2022
Create the object with comport and baudrate. This will open the port.
a = serialport(comport,baudrate);
Write an empty matrix to clear the port. This will close the port and let other processes to access it (Arduino IDE for that matter). This will work where "clear a" would not. For example a handle class that keeps "a" as one of the properties.
a = [];
1 Kommentar
James
am 12 Okt. 2023
Thanks Michael ~ that works for me !
I'm new to Matlab. Writing [ ] to the port object isn't exactly intuitive (to me anyway).
JAVIER BURGUES CALDERON
am 29 Okt. 2019
2 Kommentare
Sakari Vekki
am 11 Sep. 2020
Late to the party but this should work:
configureCallback(serialhandle, "off");
where serialhandle is your serialport object.
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!