serial Properties
(To be removed) Access serial properties
serial
and its object properties are not recommended. Use serialport
and
its properties instead. See Version History.
Serial properties are used to configure communications using the
serial
object and to configure read and write behavior.
Some properties can be set during object creation with the serial
function. See the serial
reference page for information about those
properties, which include Port
, BaudRate
,
ByteOrder
, DataBits
, Parity
,
StopBits
, and Terminator
.
Communication properties are used to set data bit transfer settings. Read and write properties are used to configure factors involved in the reading and writing of data, such as setting a timeout for completing the operation. Use callback properties to execute callback functions from events. Use control pin properties to configure the state of control pins and data flow control. Use recording properties to set up and control recording information to disk.
Note
This sample syntax for all the properties assumes you have created a serial object,
s
. Many of the properties can only be set before calling
fopen
on the object. Some can be changed while the object is
open.
Properties can be set after you create the serial
object. A read-only
property is called as follows:
s = serial('COM1');
s.TransferStatus
ans = idle
A property you can configure is set as follows:
s = serial('COM1');
s.Timeout = 30;
General Purpose Properties
Name
— Descriptive name for the serial port object
character vector | string
Descriptive name for the serial port object, specified as a character vector or
string. When you create a serial port object, a descriptive name is automatically
generated and stored in Name
. This name is given by concatenating the
word “Serial” with the serial port specified in the serial
function.
However, you can change the value of Name
at any time.
The serial port is given by the Port
property. If you modify this
property value, then Name
is automatically updated to reflect that
change.
Example: s.Name = 'MySerialDevice';
Data Types: char
| string
Port
— Serial port name
character vector | string
This property is read-only.
Serial port name, specified as a character vector or string. The
seriallist
function provides a list of available serial ports. You
must specify the port to create a serial port object.
The port name depends on the platform that the serial port is on. This list is an example of serial constructors on different platforms:
Platform | Serial Port Constructor |
---|---|
Linux® 64 | s = serial('/dev/ttyS0') |
macOS 64 | s = serial('/dev/tty.KeySerial1') |
Windows® 64 | s = serial('COM1') |
Example: s.Port
Data Types: char
| string
Tag
— Label to associate with a serial port object
character vector | string
Label to associate with a serial port object, specified as a character vector or
string. Tag
uniquely identifies a serial port object.
Tag
is particularly useful when constructing programs that would
otherwise need to define the serial port object as a global variable, or pass the object
as an argument between callback routines.
You can return the serial port object with the instrfind
function
by specifying the Tag
property value.
Example: s.Tag = 'MySerialObj';
Data Types: char
| string
Type
— Object type
serial
(default)
This property is read-only.
Object type, specified as serial
. Type
is
automatically defined after the serial port object is created with the
serial
function. The Type
value is always
serial
.
Example: s.Type
Data Types: char
| string
UserData
— Data you want to associate with a serial port object
[ ] (default) | array
Data you want to associate with a serial port object, specified as a MATLAB array.
Configure UserData
to store data that you want to associate with a
serial port object. The object does not use this data directly, but you can access it
using the get function or the dot notation.
ObjectVisibility
— Control access to serial port object
'on'
(default) | 'off'
Control access to serial port object, specified as 'on'
or
'off'
. It provides a way for application developers to prevent
end-user access to the serial port objects created by their applications. When an
object's ObjectVisibility
property is set to
'off'
, instrfind
does not return or delete that
object.
Objects that are not visible are still valid. If you have access to the object (for example, from within the file that creates it), you can set and get its properties and pass it to any function that operates on serial port objects.
Example: s.ObjectVisibility = 'off';
Data Types: char
| string
Communications Properties
ByteOrder
— Byte order of the device
littleEndian
(default) | bigEndian
Byte order of the device, specified as littleEndian
or
bigEndian
. If ByteOrder
is
littleEndian
, the device stores the first byte in the first memory
address. If ByteOrder
is bigEndian
, the device
stores the last byte in the first memory address.
For example, suppose the hexadecimal value 4F52 is to be stored in device memory. Because this value consists of two bytes, 4F and 52, two memory locations are used. Using big-endian format, 4F is stored first in the lower storage address. Using little-endian format, 52 is stored first in the lower storage address.
The byte order of littleEndian
is the default and is used in read
and write operations if you do not specify the property. You need to specify the
property only to change the byte order to bigEndian
.
You can also set the ByteOrder
property after creating the serial
object using this
syntax:
s.ByteOrder = 'bigEndian';
Note
Configure ByteOrder
to the appropriate value for your device
before performing a read or write operation. Refer to your device documentation for
information about the order in which it stores bytes.
Example: s.ByteOrder = 'bigEndian';
Data Types: char
| string
BaudRate
— Rate at which bits are transmitted
9600 (default) | double
Rate at which bits are transmitted, specified as a double. You configure baud rate as bits per second. The transferred bits include the start bit, the data bits, the parity bit (if used), and the stop bits. However, only the data bits are stored.
The baud rate is the rate at which information is transferred in a communication
channel. In the serial port context, 9600 baud means that the serial port is capable of
transferring a maximum of 9600 bits per second. If the information unit is one baud (one
bit), the bit rate and the baud rate are identical. If one baud is given as 10 bits,
(for example, eight data bits plus two framing bits), the bit rate is still 9600 but the
baud rate is 9600/10, or 960. You always configure BaudRate
as bits
per second.
Note
Both the computer and the peripheral device must be configured to the same baud rate before you can successfully read or write data.
Standard baud rates include 110, 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 38400, 57600, 115200, 128000, and 256000 bits per second.
You can also set the BaudRate
property after creating the serial
object using this syntax:
s.BaudRate = 4800;
Example: s.BaudRate = 4800;
Data Types: double
DataBits
— Number of data bits to transmit
8 (default) | 5 | 6 | 7
Number of data bits to transmit, specified as 5
,
6
, 7
, or 8
. Data is
transmitted as a series of five, six, seven, or eight bits with the least significant
bit sent first. At least seven data bits are required to transmit ASCII characters.
Eight bits are required to transmit binary data. Five-bit and six-bit data formats are
used for specialized communications equipment.
Note
Both the computer and the peripheral device must be configured to transmit the same number of data bits.
In addition to the data bits, the serial data format consists of a start bit, one or
two stop bits, and possibly a parity bit. You specify the number of stop bits with the
StopBits
property, and the type of parity checking with the
Parity
property.
You can also set the DataBits
property after creating the serial
object using this syntax:
s.DataBits = 7;
Example: s.DataBits = 7;
Data Types: double
Parity
— Type of parity checking
'none'
(default) | 'odd'
| 'even'
| 'mark'
| 'space'
Type of parity checking, specified as none
,
odd
, even
, mark
, or
space
.
| Default. No parity checking. Parity checking is not performed and the parity bit is not transmitted. |
| Odd parity checking. The number of mark bits (1s) in the data is counted, and the parity bit is asserted or unasserted to obtain an odd number of mark bits. |
| Even parity checking. The number of mark bits in the data is counted, and the parity bit is asserted or unasserted to obtain an even number of mark bits. |
| Mark parity checking. The parity bit is asserted. |
| Space parity checking. The parity bit is unasserted. |
Parity checking can detect errors of one bit only. An error in two bits might cause the data to have a seemingly valid parity, when in fact it is incorrect.
In addition to the parity bit, the serial data format consists of a start bit,
between five and eight data bits, and one or two stop bits. You specify the number of
data bits with the DataBits
property, and the number of stop bits
with the StopBits
property.
You can also set the Parity
property after creating the serial
object using this syntax:
s.Parity = 'even';
Example: s.Parity = 'even';
Data Types: char
| string
StopBits
— Number of bits used to indicate the end of a byte
1 (default) | 1.5 | 2
Number of bits used to indicate the end of a byte, specified as
1
, 1.5
, or 2
. If
StopBits
is 1
, one stop bit is used to indicate
the end of data transmission. If StopBits
is 2
,
two stop bits are used to indicate the end of data transmission. If
StopBits
is 1.5
, the stop bit is transferred for
150% of the normal time used to transfer one bit.
Note
Both the computer and the peripheral device must be configured to transmit the same number of stop bits.
Summary of the possible values:
| Default. One stop bit is transmitted to indicate the end of a byte. |
| The stop bit is transferred for 150% of the normal time used to transfer one bit. |
| Two stop bits are transmitted to indicate the end of a byte. |
In addition to the stop bits, the serial data format consists of a start bit,
between five and eight data bits, and possibly a parity bit. You specify the number of
data bits with the DataBits
property, and the type of parity checking
with the Parity
property.
You can also set the StopBits
property after creating the serial
object using this syntax:
s.StopBits = 2;
Example: s.StopBits = 2;
Data Types: double
Terminator
— Terminator character
string | cell array
Terminator character, specified as a string or cell array. You can configure
Terminator
to an integer value ranging from 0 to 127, which
represents the ASCII code for the character, or you can configure
Terminator
to the ASCII character. For example, to configure
Terminator
to a carriage return, specify the value to be
CR
or 13
. To configure
Terminator
to a linefeed, specify the value to be
LF
or 10
. You can also set
Terminator
to CR/LF
or LF/CR
.
If Terminator
is CR/LF
, the terminator is a
carriage return followed by a line feed. If Terminator is LF/CR
, the
terminator is a linefeed followed by a carriage return. Note that there are no integer
equivalents for these two values.
Additionally, you can set Terminator
to a 1-by-2 cell array. The
first element of the cell is the read terminator and the second element of the cell
array is the write terminator.
When performing a write operation using the fprintf
function,
all occurrences of \n
are replaced with the
Terminator
property value. Note that %s\n
is the
default format for fprintf
. A read operation with
fgetl
, fgets
, or fscanf
completes when the Terminator
value is read. The terminator is
ignored for binary operations.
You can also use the terminator to generate a bytes-available event when the
BytesAvailableFcnMode
is set to
terminator
.
You can also set the Terminator
property after creating the
serial object, using this
syntax:
s.Terminator = 'CR';
Example: s.Terminator = 'CR';
Data Types: char
| string
| cell
Read and Write Properties
BytesAvailable
— Number of bytes available in the input buffer
0 (default) | double
This property is read-only.
Number of bytes available in the input buffer, specified as a double. This read-only
property indicates the number of bytes currently available to be read from the input
buffer. The property value is continuously updated as the input buffer is filled, and is
set to 0
after the fopen
function is
issued.
You can make use of BytesAvailable
only when reading data
asynchronously. This is because when reading data synchronously, control is returned to
the MATLAB® command line only after the input buffer is empty. Therefore, the
BytesAvailable
value is always 0.
The BytesAvailable
value can range from zero to the size of the
input buffer. Use the InputBufferSize
property to specify the size of
the input buffer. Use the ValuesReceived
property to return the total
number of values read.
Example:
s.BytesAvailable
Data Types: double
InputBufferSize
— Size of the input buffer in bytes
512 (default) | double
Size of the input buffer in bytes, specified as a double. You configure
InputBufferSize
as the total number of bytes that can be stored in
the input buffer during a read operation.
A read operation is terminated if the amount of data stored in the input buffer
equals the InputBufferSize
value. You can read text data with the
fgetl
, fget
, or fscanf
functions. You can read binary data with the fread
function.
You can configure InputBufferSize
only when the serial port
object is disconnected from the device. You can configure it before calling the
fopen
function. You disconnect an object with the
fclose
function. A disconnected object has a
Status
property value of closed
.
If you configure InputBufferSize
while there is data in the input
buffer, that data is purged.
Example:
s.InputBufferSize = 768;
Data Types: double
ReadAsyncMode
— Specify whether an asynchronous read operation is continuous or manual
'continuous'
(default) | 'manual'
Specify whether an asynchronous read operation is continuous or manual, specified as
'manual'
or 'continuous'
. If
ReadAsyncMode
is continuous
, the serial port
object continuously queries the device to determine if data is available to be read. If
data is available, it is automatically read and stored in the input buffer. If issued,
the readasync
function is ignored.
If ReadAsyncMode
is manual
, the object does
not query the device to determine if data is available to be read. Instead, you must
manually issue the readasync
function to perform an asynchronous
read operation. Because readasync
checks for the terminator, this
function can be slow. To increase speed, configure ReadAsyncMode
to
continuous
.
Note
If the device is ready to transmit data, it will do so regardless of the
ReadAsyncMode
value. Therefore, if
ReadAsyncMode
is manual
and a read operation
is not in progress, data might be lost. To guarantee that all transmitted data is
stored in the input buffer, you should configure ReadAsyncMode
to
continuous
.
To determine the amount of data available in the input buffer, use the
BytesAvailable
property. For either
ReadAsyncMode
value, you can bring data into the MATLAB workspace with one of the synchronous read functions such as
fscanf
, fgetl
, fgets
,
or fread
.
Example:
s.ReadAsyncMode = 'manual';
Data Types: char
| string
Timeout
— Waiting time to complete a read or write operation
10 (default) | double
Waiting time to complete a read or write operation, specified as a double. You
configure Timeout
to be the maximum time (in seconds) to wait to
complete a read or write operation. The default value of 10
seconds
is used if you do not specify a different value. Timeouts are rounded upwards to full
seconds.
If a timeout occurs, the read or write operation aborts. Additionally, if a timeout occurs during an asynchronous read or write operation, then:
An error event is generated.
The callback function specified for
ErrorFcn
is executed.
Example:
s.Timeout = 30;
Data Types: double
TransferStatus
— Status of asynchronous read or write operation
idle
(default) | read
| write
| read&write
This property is read-only.
Status of asynchronous read or write operation, specified as
idle
, read
, write
, or
read&write
. This read-only property indicates if an
asynchronous read or write operation is in progress. If
TransferStatus
is idle
, no asynchronous read or
write operations are in progress. If it is read
, an asynchronous read
operation is in progress. If it is write
, an asynchronous write
operation is in progress. If TransferStatus
is
read&write
, both an asynchronous read and an asynchronous write
operation are in progress.
You can write data asynchronously using the fprintf
or
fwrite
functions. You can read data asynchronously using the
readasync
function, or by configuring the
ReadAsyncMode
property to continuous
. While
readasync
is executing, TransferStatus
might
indicate that data is being read even though data is not filling the input buffer. If
ReadAsyncMode
is continuous
,
TransferStatus
indicates that data is being read only when data is
filling the input buffer.
You can execute an asynchronous read and an asynchronous write operation simultaneously because serial ports have separate read and write pins.
Summary the possible values:
| No asynchronous operations are in progress. |
| An asynchronous read operation is in progress. |
| An asynchronous write operation is in progress. |
| Asynchronous read and write operations are in progress. |
Example:
s.TransferStatus
Data Types: char
| string
ValuesReceived
— Total number of values read from the device
0 (default) | double
This property is read-only.
Total number of values read from the device, specified as a double. This is a
read-only property, and the value is updated after each successful read operation and
set to 0
after the fopen
function is issued. If
the terminator is read from the device, then this value is reflected by
ValuesReceived
.
If you are reading data asynchronously, use the BytesAvailable
property to return the number of bytes currently available in the input buffer.
When performing a read operation, the received data is represented by values rather
than bytes. A value consists of one or more bytes. For example, one
uint32
value consists of four bytes.
For example, create a serial port object associated with the serial port COM1, and open the connection.
s = serial('COM1'); fopen(s)
If you write the RS232?
command, and read back the response using
fscanf
, ValuesReceived
is 17
because the instrument is configured to send the
LF
terminator.
fprintf(s,'RS232?') out = fscanf(s) out = 9600;0;0;NONE;LF s.ValuesReceived ans = 17
Example:
s.ValuesReceived
Data Types: double
BytesToOutput
— Number of bytes currently in the output buffer
0 (default) | double
This property is read-only.
Number of bytes currently in the output buffer, specified as a double. This
read-only property indicates the number of bytes currently in the output buffer waiting
to be written to the device. The property value is continuously updated as the output
buffer is filled and emptied, and is set to 0
after the
fopen
function is issued.
You can make use of BytesToOutput
only when writing data
asynchronously. This is because when writing data synchronously, control is returned to
the MATLAB command line only after the output buffer is empty. Therefore, the
BytesToOutput
value is always 0
.
Use the ValuesSent
property to return the total number of values
written to the device.
Note
If you attempt to write out more data than can fit in the output buffer, an error
is returned and BytesToOutput
is 0
. Specify the
size of the output buffer with the OutputBufferSize
property.
Example:
s.BytesToOutput
Data Types: double
OutputBufferSize
— Size of the output buffer in bytes
512 (default) | double
Size of the output buffer in bytes, specified as a double. You configure
OutputBufferSize
as the total number of bytes that can be stored in
the output buffer during a write operation.
You can configure OutputBufferSize
only when the serial port
object is disconnected from the device. You can configure it before calling the
fopen
function. You disconnect an object with the
fclose
function. A disconnected object has a
Status
property value of closed
.
An error occurs if the output buffer cannot hold all the data to be written. You
write text data with the fprintf
function. You write binary data
with the fwrite
function.
Example:
s.OutputBufferSize = 256;
Data Types: double
ValuesSent
— Total number of values written to the device
0 (default) | double
This property is read-only.
Total number of values written to the device, specified as a double. This is a
read-only property, and the value is updated after each successful write operation and
set to 0
after the fopen
function is issued. If
you are writing the terminator, ValuesSent
reflects this
value.
If you are writing data asynchronously, use the BytesToOutput
property to return the number of bytes currently in the output buffer.
When performing a write operation, the transmitted data is represented by values
rather than bytes. A value consists of one or more bytes. For example, one
uint32
value consists of four bytes.
For example, create a serial port object associated with the serial port COM1 and open the connection.
s = serial('COM1'); fopen(s)
If you write the *IDN?
command using the fprintf
function, ValuesSent
is 6
because the default data format is %s\n
, and the terminator was
written.
fprintf(s,'*IDN?') s.ValuesSent ans = 6
Example:
s.ValuesSent
Data Types: double
Status
— Status of serial port device connection
closed (default) | open
This property is read-only.
Status of serial port device connection, returned as closed
or
open
. This read-only property indicates whether the serial port
object is connected to the device. If Status
is
closed
, the serial port object is not connected to the device. If
Status
is open
, the serial port object is
connected to the device.
Before you can write or read data, you must connect the serial port object to the
device with the fopen
function. Use the fclose
function to disconnect a serial port object from the device.
Example:
s.Status
Data Types: char
| string
Callback Properties
BreakInterruptFcn
— Callback function to run when break-interrupt event occurs
function handle
Callback function to run when break-interrupt event occurs, specified as a function handle. A break-interrupt event is generated by the serial port when the received data is in an off (space) state longer than the transmission time for one byte.
Note
A break-interrupt event can be generated at any time during the serial port session.
If the RecordStatus
property value is on
, and
a break-interrupt event occurs, the record file records this information:
The event type as
BreakInterrupt
The time the event occurred using the format day-month-year hour:minute:second:millisecond
Data Types: function_handle
BytesAvailableFcn
— Callback function to run when bytes-available event occurs
function handle
Callback function to run when bytes-available event occurs, specified as a function
handle. A bytes-available event occurs when the number of bytes specified by the
BytesAvailableFcnCount
property is available in the input buffer,
or after a terminator is read, as determined by the
BytesAvailableFcnMode
property.
Note
A bytes-available event can be generated only for asynchronous read operations.
If the RecordStatus
property value is on
, and
a bytes-available event occurs, the record file records this information:
The event type as
BytesAvailable
The time the event occurred using the format day-month-year hour:minute:second:millisecond
Note
You cannot use ASCII values larger than 127 characters. The function is limited to 127 binary characters.
Example: s.BytesAvailableFcn = @instrcallback;
Data Types: function_handle
BytesAvailableFcnCount
— Number of bytes that must be available in the input buffer
48 (default) | numeric
Number of bytes that must be available in the input buffer to generate a bytes-available event, specified as a number.
Use the BytesAvailableFcnMode
property to specify whether the
bytes-available event occurs after a certain number of bytes are available or after a
terminator is read.
The bytes-available event executes the callback function specified for the
BytesAvailableFcn
property.
You can configure BytesAvailableFcnCount
only when the object is
disconnected from the device. You disconnect an object with the
fclose
function. A disconnected object has a
Status
property value of closed
.
Example: s.BytesAvailableFcnCount = 40;
Data Types: double
BytesAvailableFcnMode
— Type of bytes-available function
'terminator'
(default) | 'byte'
Type of bytes-available function to generate a bytes-available event, specified as
'terminator'
or 'byte'
. If
BytesAvailableFcnMode
is 'terminator'
, a
bytes-available event occurs when the terminator specified by the
Terminator
property is reached. If
BytesAvailableFcnMode
is 'byte'
, a
bytes-available event occurs when the number of bytes specified by the
BytesAvailableFcnCount
property is available.
The bytes-available event executes the callback function specified for the
BytesAvailableFcn
property.
You can configure BytesAvailableFcnMode
only when the object is
disconnected from the device. You disconnect an object with the
fclose
function. A disconnected object has a
Status
property value of closed
.
Example: s.BytesAvailableFcnMode = 'byte';
Data Types: char
| string
ErrorFcn
— Callback function to run when an error event occurs
function handle
Callback function to run when an error event occurs, specified as a function handle.
Note
An error event is generated only for asynchronous read and write operations.
An error event is generated when a time-out occurs. A time-out occurs if a read or
write operation does not successfully complete within the time specified by the
Timeout
property. An error event is not generated for configuration
errors such as setting an invalid property value.
If the RecordStatus
property value is on
, and
an error event occurs, the record file records this information:
The event type as
Error
The error message
The time the event occurred using the format day-month-year hour:minute:second:millisecond
Data Types: function_handle
OutputEmptyFcn
— Callback function to run when an output-empty event occurs
function handle
Callback function to execute when an output-empty event occurs, specified as a function handle. An output-empty event occurs when the last byte is sent from the output buffer to the device.
Note
An output-empty event can be generated only for asynchronous write operations.
If the RecordStatus
property value is on
, and
an output-empty event occurs, the record file records this information:
The event type as
OutputEmpty
The time the event occurred using the format day-month-year hour:minute:second:millisecond
Data Types: function_handle
PinStatusFcn
— Callback function to run when a pin status event occurs
function handle
Callback function to run when a pin status event occurs, specified as a function
handle. A pin status event occurs when the Carrier Detect (CD), Clear to Send (CTS),
Data Set Ready (DSR), or Ring Indicator (RI) pin changes state. A serial port pin
changes state when it is asserted or unasserted. Information about the state of these
pins is recorded in the PinStatus
property.
Note
A pin status event can be generated at any time during the serial port session.
If the RecordStatus
property value is on
, and
a pin status event occurs, the record file records this information:
The event type as
PinStatus
The pin that changed its state, and the pin state as either
on
oroff
The time the event occurred using the format day-month-year hour:minute:second:millisecond
Data Types: function_handle
TimerFcn
— Callback function to run when a timer event occurs
function handle
Callback function to run when a timer event occurs, specified as a function handle.
A timer event occurs when the time specified by the TimerPeriod
property passes. Time is measured relative to when the serial port object is connected
to the device with fopen
.
Note
A timer event can be generated at any time during the serial port session.
If the RecordStatus
property value is on
, and
a timer event occurs, the record file records this information:
The event type as
Timer
The time the event occurred using the format day-month-year hour:minute:second:millisecond
Some timer events might not be processed if your system is significantly slowed or
if the TimerPeriod
value is too small.
Data Types: function_handle
TimerPeriod
— Period of time between timer events
1 (default) | numeric
Period of time between timer events, specified as a number in seconds. It is the
time that must pass before the callback function specified for
TimerFcn
is called. Time is measured relative to when the serial
port object is connected to the device with fopen
.
Some timer events might not be processed if your system is significantly slowed or
if the TimerPeriod
value is too small.
Data Types: double
Control Pin Properties
DataTerminalReady
— State of the DTR pin
on (default) | off
State of the DTR pin, specified as on
or off
.
If DataTerminalReady
is on
, the Data Terminal
Ready (DTR) pin is asserted. If DataTerminalReady
is
off
, the DTR pin is unasserted.
In normal usage, the DTR and Data Set Ready (DSR) pins work together, and are used to signal if devices are connected and powered. However, there is nothing in the RS-232 standard that states the DTR pin must be used in any specific way. For example, DTR and DSR might be used for handshaking. You should refer to your device documentation to determine its specific pin behavior.
You can return the value of the DSR pin with the PinStatus
property.
Example:
s.DataTerminalReady = 'off';
Data Types: char
| string
FlowControl
— Data flow control method
none (default) | hardware | software
Data flow control method, specified as none
,
hardware
, or software
. If
FlowControl
is none
, data flow control
(handshaking) is not used. If FlowControl
is
hardware
, hardware handshaking is used to control data flow. If
FlowControl
is software
, software handshaking is
used to control data flow.
Hardware handshaking typically utilizes the Request to Send (RTS) and Clear to Send (CTS) pins to control data flow. Software handshaking uses control characters (Xon and Xoff) to control data flow.
You can return the value of the CTS pin with the PinStatus
property. You can specify the value of the RTS pin with the
RequestToSend
property. However, if FlowControl
is hardware
, and you specify a value for
RequestToSend
, that value might not be honored.
Note
Although you might be able to configure your device for both hardware handshaking and software handshaking at the same time, MATLAB does not support this behavior.
Example:
s.FlowControl = 'hardware';
Data Types: char
| string
PinStatus
— State of the CD, CTS, DSR, and RI pins
structure
This property is read-only.
State of the CD, CTS, DSR, and RI pins, returned as a structure. This read-only
property returns a structure array that contains the fields
CarrierDetect
, ClearToSend
,
DataSetReady
and RingIndicator
. These fields
indicate the state of the Carrier Detect (CD), Clear to Send (CTS), Data Set Ready (DSR)
and Ring Indicator (RI) pins, respectively.
PinStatus
can be on
or off
for any of these fields. A value of on
indicates the associated pin
is asserted. A value of off
indicates the associated pin is
unasserted. A pin status event occurs when any of these pins changes its state. A pin
status event executes the call back function specified by
PinStatusFcn
.
In normal usage, the Data Terminal Ready (DTR) and DSR pins work together, while the
Request to Send (RTS) and CTS pins work together. You can specify the state of the DTR
pin with the DataTerminalReady
property. You can specify the state of
the RTS pin with the RequestToSend
property.
Example:
s.PinStatus
Data Types: struct
RequestToSend
— State of the RTS pin
on (default) | off
State of the RTS pin, specified as on
or off
.
If RequestToSend
is on
, the Request to Send (RTS)
pin is asserted. If RequestToSend
is off
, the RTS
pin is unasserted.
In normal usage, the RTS and Clear to Send (CTS) pins work together, and are used as
standard handshaking pins for data transfer. In this case, RTS and CTS are automatically
managed by the DTE and DCE. However, there is nothing in the RS-232 standard that
requires the RTS pin must be used in any specific way. Therefore, if you manually
configure the RequestToSend
value, it is probably for nonstandard
operations.
If your device does not use hardware handshaking in the standard way, and you need
to manually configure RequestToSend
, configure the
FlowControl
property to none
. Otherwise, the
RequestToSend
value that you specify might not be honored. Refer to
your device documentation to determine its specific pin behavior.
You can return the value of the CTS pin with the PinStatus
property.
Example:
s.RequestToSend = 'off';
Data Types: char
| string
Recording Properties
RecordDetail
— Detail level of information saved to a record file
compact (default) | verbose
Detail level of information saved to a record file, specified as
compact
or verbose
. If
RecordDetail
is compact
, the number of values
written to the device, the number of values read from the device, the data type of the
values, and event information are saved to the record file. If
RecordDetail
is verbose
, the data written to the
device and the data read from the device are also saved to the record file.
Summary of the possible values:
| The number of values written to the device, the number of values read from the device, the data type of the values, and event information are saved to the record file. |
| The data written to the device, and the data read from the device are also saved to the record file. |
Example:
s.RecordDetail = 'verbose';
Data Types: char
| string
RecordMode
— Method for saving data and event information in record files
overwrite (default) | append | index
Method for saving data and event information in record files, specified as
overwrite
, append
, or index
.
If RecordMode
is overwrite
, the record file is
overwritten each time recording is initiated. If RecordMode
is
append
, data is appended to the record file each time recording is
initiated. If RecordMode
is index
, a different
record file is created each time recording is initiated, each with an indexed
filename.
You can configure RecordMode
only when the object is not
recording. You terminate recording with the record
function. An
object that is not recording has a RecordStatus
property value of
off
.
You specify the record filename with the RecordName
property. The
indexed filename follows a prescribed set of rules.
Summary of the possible values:
| The record file is overwritten. |
| Data is appended to an existing record file. |
| A different record file is created, each with an indexed filename. |
For example, record serial data using the record properties. Create the serial port object and open the connection.
s = serial('COM1'); fopen(s)
Specify the record filename with the RecordName
property,
configure RecordMode
to index
, and initiate
recording.
s.RecordName = 'MyRecord.txt'; s.RecordMode = 'index'; record(s)
The record filename is automatically updated with an indexed filename after recording is turned off.
record(s,'off') s.RecordName ans = MyRecord01.txt
Disconnect s
from the peripheral device, remove
s
from memory, and remove s
from the MATLAB workspace.
fclose(s) delete(s) clear s
Example:
s.RecordMode = 'index';
Data Types: char
| string
RecordName
— Name of the record file
string
Name of the record file, specified as a string. You can specify any value for
RecordName
- including a directory path - provided the file name is
supported by your operating system.
The default record filename is record.txt
, which is used if you
record a data file and do not specify a different name.
MATLAB supports any file name supported by your operating system. You can access
the file using the type
function. For example, if you name the record
file MyRecord.txt
, to type this file at the MATLAB command line, enter:
type('MyRecord.txt')
You can specify whether data and event information are saved to one disk file or to
multiple disk files with the RecordMode
property. If
RecordMode
is index
, the filename follows a
prescribed set of rules.
You can configure RecordName
only when the object is not
recording. You terminate recording with the record
function. An
object that is not recording has a RecordStatus
property value of
off
.
Example:
s.RecordName = 'MonthlyDataFile_April';
Data Types: char
| string
RecordStatus
— Status of recording serial data and event information
off (default) | on
This property is read-only.
Status of recording serial data and event information, returned as
on
or off
. This read-only property indicates
whether recording is on or off, which is controlled by the record
function. If RecordStatus
is off
, then data and
event information are not saved to a record file. If RecordStatus
is
on
, then data and event information are saved to the record file
specified by RecordName
.
Use the record
function to initiate or complete recording.
RecordStatus
is automatically configured to reflect the recording
state.
Example:
s.RecordStatus
Data Types: char
| string
Version History
Introduced before R2006aR2021a: serial
object interface will be removed
serial
and its object properties are not recommended. Use serialport
and
its properties instead.
This example 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 recommended interface has additional capabilities and improved performance. See Transition Your Code to serialport Interface for more information about using the recommended functionality.
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)