Matlab Serial Port Example
Create a serial port object and specify properties. This example creates the serial port object s2, associated with the serial port COM3, and sets properties. You can optionally set communication properties by specifying name-value pairs during object creation, after the port argument. This example sets the baud rate to 4800 and the terminator to CR. The serial port session is reinforced in many of the serial port documentation examples. To see a basic example that uses the steps shown above, see Example: Getting Started. Configuring and Returning Properties. This example describes how you display serial port property names and property values, and how you assign values to properties.
Fwrite(obj,A) writes the binary data A to the device connected to the serial port object, obj. Fwrite(obj,A,'precision') writes binary data with precision specified by precision. Precision controls the number of bits written for each value and the interpretation of those bits as integer, floating-point, or character values. Creating an Array of Serial Port Objects. In MATLAB, you create an array from existing variables by concatenating those variables together. The same is true for serial port objects. For example, suppose you create the serial port objects s1 and s2 on a Windows platform.
'port'
— Serial port name
character vectorstring
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.
This example illustrates how to communicate with a serial port instrument by writing and reading text data. The instrument is a Tektronix TDS 210 two-channel oscilloscope connected to the COM1 port. Therefore, many of the following commands are specific to this instrument. S = serialport, without arguments, connects to the serial port using the property settings of your last cleared serialport object instance. The retained properties are Port, BaudRate, ByteOrder, FlowControl, StopBits, DataBits, Parity, Timeout, and Terminator. The serial port object behaves according to the previously configured or default property values. Disconnect and clean up — When you no longer need the serial port object, remove it from the MATLAB ® workspace using the clear command.
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 = serial('COM1')
Matlab Serial Example
Data Types: char
string
Name-Value Pair Arguments
Specify optional comma-separated pairs of Name,Value
arguments. Name
is the argument name and Value
is the corresponding value. Name
must appear inside quotes. You can specify several name and value pair arguments in any order as Name1,Value1,..,NameN,ValueN
.
s = serial('COM2','BaudRate',1200,'DataBits',7);
For a list of serial port object properties that you can use with serial
, refer to Property Reference.
Note
Port must be the first argument used to create the serial object. You can then follow port with any number of supported name-value pairs.
'BaudRate'
— Rate at which bits are transmitted
9600 (default) double
Rate at which bits are transmitted, specified as the comma-separated pair consisting of 'BaudRate'
and 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:
Example: s = serial('COM1','BaudRate',4800);
Data Types: double
'ByteOrder'
— Byte order of the device
littleEndian (default) bigEndian
Byte order of the device, specified as the comma-separated pair consisting of 'ByteOrder'
and 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:
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 = serial('COM1','ByteOrder','bigEndian');
Data Types: char
string
'DataBits'
— Number of data bits to transmit
8 (default) 567
Number of data bits to transmit, specified as the comma-separated pair consisting of 'DataBits'
and 5
, 6
, 7
, or 8
, which is the default. 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:
Example: s = serial('COM1','DataBits',7);
Forgot password protected zip file.
Data Types: double
'Parity'
— Type of parity checking
none (default) oddevenmarkspace
Type of parity checking, specified as the comma-separated pair consisting of 'Parity'
and none
, odd
, even
, mark
, or space
.
Matlab Serial Read
| 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:
Example: s = serial('COM1','Parity','even');
Data Types: char
string
'StopBits'
— Number of bits used to indicate the end of a byte
1 (default) 1.52
Number of bits used to indicate the end of a byte, specified as the comma-separated pair consisting of 'StopBits'
and 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:
Example: s = serial('COM1','StopBits',2);
Data Types: double
Terminator character, specified as the comma-separated pair consisting of 'Terminator'
and a string. 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 %sn
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: Windows xp simulator download.
Example: s = serial('COM1','Terminator','CR');
Data Types: char
string
The Serial Port Session
This example describes the steps you use to perform any serial port task from beginning to end.
The serial port session comprises all the steps you are likely to take when communicating with a device connected to a serial port. These steps are:
Find your serial ports — Display a list of serial ports on your system using the
serialportlist
function.Connect to a serial port device — Connect to a device for a specific serial port using the
serialport
creation function.Configure properties during object creation if necessary. In particular, you might want to configure properties associated with serial port communications such as the baud rate, the number of data bits, and so on. Alter the necessary device settings by configuring property values, read data, and write data.
Configure properties — To establish the desired serial port object behavior, assign values to properties using dot notation.
In practice, you can configure many of the properties at any time including during, or just after, object creation. Conversely, depending on your device settings and the requirements of your serial port application, you might be able to accept the default property values and skip this step.
Write and read data — Write data to the device using the
writeline
orwrite
function, and read data from the device using thereadline
orread
function.The serial port object behaves according to the previously configured or default property values.
Disconnect and clean up — When you no longer need the serial port object, remove it from the MATLAB® workspace using the
clear
command.
The serial port session is reinforced in many of the serial port documentation examples. To see a basic example that uses the steps shown above, see Query a Serial Port Device.