How to close serial port in R2019b

조회 수: 29 (최근 30일)
JAVIER BURGUES CALDERON
JAVIER BURGUES CALDERON 2019년 10월 29일
댓글: James 2023년 10월 12일
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.

채택된 답변

Walter Roberson
Walter Roberson 2019년 10월 29일
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
Walter Roberson
Walter Roberson 2021년 6월 11일
/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
Will Reeves 2023년 2월 1일
편집: Will Reeves 2023년 2월 1일
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!

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

Michael Borovik
Michael Borovik 2022년 3월 23일
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
James
James 2023년 10월 12일
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
JAVIER BURGUES CALDERON 2019년 10월 29일
Thanks Walter. I agree that the fopen/fclose interface was more intuitive.
Do you know if it is possible to delete a callback function currently associated to a serialport object, without deleting the object?
Thanks,
Javier.
  댓글 수: 2
Sakari Vekki
Sakari Vekki 2020년 9월 11일
Late to the party but this should work:
configureCallback(serialhandle, "off");
where serialhandle is your serialport object.
Walter Roberson
Walter Roberson 2020년 9월 11일
Thanks, Sakari Vekki, I had not noticed that method before.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Serial and USB Communication에 대해 자세히 알아보기

제품


릴리스

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by