Matlab Serial Port Example

The Serial Port Session

This example describes the steps you use to perform any serial port task from beginning to end.

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. 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. Serial communication is the most common low-level protocol for communicating between two or more devices. Normally, one device is a computer, while the other device can be a modem, a printer, Arduino ® hardware, another computer, or a scientific instrument such as an oscilloscope or a function generator. For many serial port applications, you can communicate with your instrument without. 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.

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:

  1. Find your serial ports — Display a list of serial ports on your system using the serialportlist function.

  2. 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.

  3. 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.

  4. Write and read data — Write data to the device using the writeline or write function, and read data from the device using the readline or read function.

    The serial port object behaves according to the previously configured or default property values.

  5. Disconnect and clean up — When you no longer need the serial port object, remove it from the MATLAB® workspace using the clear command.

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. 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.

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.

Tips

Matlab Serial Port Examples

Before you can write data to the device, it must be connected to obj with the fopen function. A connected serial port object has a Status property value of open. An error is returned if you attempt to perform a write operation while obj is not connected to the device.

The ValuesSent property value is increased by the number of values written each time fwrite is issued.

An error occurs if the output buffer cannot hold all the data to be written. You can specify the size of the output buffer with the OutputBufferSize property.

If you set the FlowControl property to hardware on a serial object, and a hardware connection is not detected, fwrite returns an error message. This occurs if a device is not connected, or a connected device is not asserting that is ready to receive data. Check the remote device status and flow control settings to see if hardware flow control is causing errors in MATLAB®.

Note

If you want to check to see if the device is asserting that it is ready to receive data, set the FlowControl to none. Once you connect to the device, check the PinStatus structure for ClearToSend. If ClearToSend is off, there is a problem on the remote device side. If ClearToSend is on, there is a hardware FlowControl device prepared to receive data and you can execute fwrite.

Synchronous Versus Asynchronous Write Operations

By default, data is written to the device synchronously and the command line is blocked until the operation completes. You can perform an asynchronous write by configuring the mode input argument to be async. For asynchronous writes:

  • The BytesToOutput property value is continuously updated to reflect the number of bytes in the output buffer.

  • The callback function specified for the OutputEmptyFcn property is executed when the output buffer is empty.

You can determine whether an asynchronous write operation is in progress with the TransferStatus property.

Synchronous and asynchronous write operations are discussed in more detail in Write and Read Data.

Matlab close all serial ports

Rules for Completing a Write Operation with fwrite

Matlab Close All Serial Ports

A binary write operation using fwrite completes when:

  • The specified data is written.

  • The time specified by the Timeout property passes.

    Note

    The Terminator property is not used with binary write operations.

Supported Precisions

Matlab Serial Communication

The following table shows the supported values for precision.

Matlab Write To Serial Port

Data Type

Precision

Interpretation

Character

uchar

8-bit unsigned character

schar

8-bit signed character

char

8-bit signed or unsigned character

Integer

int8

8-bit integer

int16

16-bit integer

int32

32-bit integer

uint8

8-bit unsigned integer

uint16

16-bit unsigned integer

uint32

32-bit unsigned integer

short

16-bit integer

int

32-bit integer

long

32- or 64-bit integer

ushort

16-bit unsigned integer

uint

32-bit unsigned integer

ulong

32- or 64-bit unsigned integer

Floating-point

single

32-bit floating point

float32

32-bit floating point

float

32-bit floating point

double

64-bit floating point

float64

64-bit floating point