Transition Your Code to serialport Interface
The serial function, its object functions, and its properties will be
removed. Use serialport instead.
serial Interface | serialport Interface | Example |
|---|---|---|
seriallist | serialportlist | Discover Serial Port Devices |
instrfind and instrfindall | serialportfind | Find Existing Serial Port Connections |
serial and fopen | serialport | Connect to Serial Port Device |
fwrite | write | Read and Write |
fread | read | |
fprintf | writeline | Send a Command |
fscanf | readline | Read a Terminated String |
fgetl | ||
fgets | ||
binblockwrite | writebinblock | Write Data with the Binary Block Protocol |
binblockread | readbinblock | Read Data with the Binary Block Protocol |
flushinput and flushoutput | flush | Flush Data from Memory |
Terminator | configureTerminator | Set Terminator |
BytesAvailableFcnCount,
BytesAvailableFcnMode,
BytesAvailableFcn, and
BytesAvailable | configureCallback and NumBytesAvailable | Set Up a Callback Function |
PinStatus | getpinstatus | Read Serial Pin Status |
DataTerminalReady and
RequestToSend | setDTR and setRTS | Set Serial DTR and RTS Pin States |
ErrorFcn | ErrorOccurredFcn | |
fclose | clear and delete | Disconnect Serial Port Connections |
Removed Functionality
The ValuesReceived and
ValuesSent properties will be removed. You can calculate the
number of values sent using the NumBytesAvailable property and the
data type of the data available. For example, if the
NumBytesAvailable is 20 bytes of uint32
data, the number of values sent is five since each uint32 value is
four bytes.
The readasync and
stopasync functions and the ReadAsyncMode
and TransferStatus properties will be removed. The updated
interface reads data asynchronously.
The BytesToOutput,
InputBufferSize, and OutputBufferSize
properties will be removed. Buffer sizes are automatically managed and sized as
needed.
The BreakInterruptFcn,
OutputEmptyFcn, and PinStatusFcn
properties will be removed. You can set callback functions using
configureCallback in the updated interface, but not for these
properties.
The RecordDetail, RecordMode,
RecordName, and RecordStatus properties
will be removed.
The TimerFcn and TimerPeriod properties will
be removed. Use timer instead.
The
Name, Type,
ObjectVisibility, and Status properties
will be removed.
Discover Serial Port Devices
seriallist will be removed. Use serialportlist instead.
Find Existing Serial Port Connections
instrfind and instrfindall will be removed.
Use serialportfind instead. (since R2024a)
Connect to Serial Port Device
This table shows how to connect to a serial port device using the recommended functionality.
| Functionality | Use This Instead |
|---|---|
s = serial("COM1");
s.BaudRate = 115200;
fopen(s) |
s = serialport("COM1",115200); |
The fopen function is not available in the updated interface. The
object creation function serialport both creates the object and
connects the object to the device.
For more information, see serialport.
Read and Write
These examples use a loopback device to show how to perform a binary write and read, write a nonterminated command string, and read a fixed-length response string using the recommended functionality.
| Functionality | Use This Instead |
|---|---|
% s is a serial object fwrite(s,1:5,"uint32") data = fread(s,5,"uint32") data =
1
2
3
4
5 |
% s is a serialport object write(s,1:5,"uint32") data = read(s,5,"uint32") data =
1 2 3 4 5
|
% s is a serial object command = "start"; fwrite(s,command,"char") |
% s is a serialport object command = "start"; write(s,command,"char") |
% s is a serialport object command = "start"; write(s,command,"string") | |
% s is a serial object length = 5; resp = fread(s,length,"char") resp =
115
116
97
114
116resp = char(resp)' resp =
'start' |
% s is a serialport object length = 5; resp = read(s,length,"string") resp =
"start" |
Send a Command
This example shows how to write a terminated SCPI command using the recommended functionality.
| Functionality | Use This Instead |
|---|---|
% s is a serial object s.Terminator = "CR/LF" channel = 1; level = 3.44; fprintf(s,"TRIGGER%d:LEVEL2 %1.2f",[channel,level]); | % s is a serialport object configureTerminator(s,"CR/LF") channel = 1; level = 3.44; cmd = sprintf("TRIGGER%d:LEVEL2 %1.2f",[channel,level]); writeline(s,cmd)
|
For more information, see configureTerminator or writeline.
Read a Terminated String
This example shows how to perform a terminated string read using the recommended functionality.
| Functionality | Use This Instead |
|---|---|
% s is a serial object fprintf(s,"MEASUREMENT:IMMED:TYPE PK2PK") a = fscanf(s,"%e",6) a =
2.0200For the format specifier
|
% s is a serialport object writeline(s,"MEASUREMENT:IMMED:TYPE PK2PK") a = readline(s) a =
"2.0200"sscanf(a,"%e")a =
2.0200 |
% s is a serial object fprintf(s,"*IDN?") a = fgetl(s) a =
'TEKTRONIX,TDS 210,0,CF:91.1CT FV:v1.16'
| % s is a serialport object writeline(s,"*IDN?") a = readline(s) a =
"TEKTRONIX,TDS 210,0,CF:91.1CT FV:v1.16 TDS2CM:CMV:v1.04"
|
% s is a serial object fprintf(s,"*IDN?") a = fgets(s) a =
'TEKTRONIX,TDS 210,0,CF:91.1CT FV:v1.16 TDS2CM:CMV:v1.04
'
|
For more information, see readline.
Write Data with the Binary Block Protocol
This example shows how to write data with the IEEE standard binary block protocol using the recommended functionality.
| Functionality | Use This Instead |
|---|---|
% s is a serial object waveform = sin(2*pi*60*0:.16:60); fprintf(s,"WLIS:WAV:DATA") binblockwrite(s,waveform,"double") |
% s is a serialport object waveform = sin(2*pi*60*0:.16:60); writeline(s,"WLIS:WAV:DATA") writebinblock(s,waveform,"double") |
For more information, see writebinblock.
Read Data with the Binary Block Protocol
This example uses a loopback device to show how to read data with the IEEE standard binary block protocol using the recommended functionality.
| Functionality | Use This Instead |
|---|---|
% s is a serial object fprintf(s,"CURVe?") data = binblockread(s,"double") data =
1
2
3
4
5 |
% s is a serialport object writeline(s,"CURVe?") data = readbinblock(s,"double") data =
1 2 3 4 5
|
For more information, see readbinblock.
Flush Data from Memory
This example shows how to flush data from the buffer using the recommended functionality.
| Functionality | Use This Instead |
|---|---|
% s is a serial object
flushinput(s)
|
% s is a serialport object flush(s,"input") |
% s is a serial object
flushoutput(s)
|
% s is a serialport object flush(s,"output") |
% s is a serial object
flushinput(s)
flushoutput(s)
|
% s is a serialport object
flush(s) |
For more information, see flush.
Set Terminator
This example shows how to set the terminator using the recommended functionality.
| Functionality | Use This Instead |
|---|---|
% s is a serial object s.Terminator = "CR/LF"; |
% s is a serialport object configureTerminator(s,"CR/LF") |
% s is a serial object s.Terminator = {"CR/LF" [10]}; |
% s is a serialport object configureTerminator(s,"CR/LF",10) |
For more information, see configureTerminator.
Set Up a Callback Function
This example uses a loopback device to show how to set up a callback function using the recommended functionality.
| Functionality | Use This Instead |
|---|---|
s = serial("COM5","BaudRate",115200) s.BytesAvailableFcnCount = 5 s.BytesAvailableFcnMode = "byte" s.BytesAvailableFcn = @instrcallback fopen(s) function instrcallback(src,evt) data = fread(src,src.BytesAvailable) disp(evt) disp(evt.Data) end data =
1
2
3
4
5
Type: 'BytesAvailable'
Data: [1×1 struct]
AbsTime: [2019 5 2 16 35 9.6710] |
s = serialport("COM5",115200) configureCallback(s,"byte",5,@instrcallback); function instrcallback(src,evt) data = read(src,src.NumBytesAvailable,"uint8") disp(evt) end data =
1 2 3 4 5
DataAvailableInfo with properties:
BytesAvailableFcnCount: 5
AbsTime: 02-May-2019 15:54:09 |
For more information, see configureCallback.
Read Serial Pin Status
This example shows how to read serial pin status using the recommended functionality.
| Functionality | Use This Instead |
|---|---|
% s is a serial object
s.PinStatusans =
struct with fields:
CarrierDetect: 'on'
ClearToSend: 'on'
DataSetReady: 'on'
RingIndicator: 'on' |
% s is a serialport object
status = getpinstatus(s)status =
struct with fields:
ClearToSend: 1
DataSetReady: 1
CarrierDetect: 1
RingIndicator: 1 |
For more information, see getpinstatus.
Set Serial DTR and RTS Pin States
This example shows how to set serial DTR and RTS pin states using the recommended functionality.
| Functionality | Use This Instead |
|---|---|
% s is a serial object s.DataTerminalReady = "on"; |
% s is a serialport object
setDTR(s,true) |
% s is a serial object s.RequestToSend = "off"; |
% s is a serialport object
setRTS(s,false) |
Disconnect Serial Port Connections
The fclose function is not available in the updated interface. To
disconnect serial port connections, use clear or
delete instead,
depending upon whether you are working in a single workspace or multiple workspaces. For
details, see the following examples on the serialport reference
page: