Main Content

read

Read data from serial device

Add-On Required: This feature requires the MATLAB Support Package for Arduino Hardware add-on.

Description

out = read(serialdevObj,numBytes) returns number of bytes of data read from serial device.

example

out = read(serialdevObj,numBytes,precision) also specifies the data precision.

example

Examples

collapse all

Create an arduino connection.

arduinoObj = arduino("COM16","Leonardo","Libraries",{'SPI','Serial','I2C'});

Create a connection to the serial device on the Arduino hardware.

serialdevObj = device(arduinoObj,'SerialPort',1,'BaudRate', 115200, 'DataBits',8, 'StopBits', 1, 'Parity', 'even')
serialdevObj = 
  device with properties:

             Interface: 'Serial'
            SerialPort: 1
                 TxPin: 'D1'
                 RxPin: 'D0'
              BaudRate: 115200 (bits/s) 
     NumBytesAvailable: 0 

Show all properties, functions

Connect the Rx and Tx pins in loopback. Write 3 bytes of data to the serial device.

write(serialdevObj,[88 99 65]);

Check if data is available to read.

numBytes = serialdevObj.NumBytesAvailable
numBytes = 3

Read data from the serial device.

read(serialdevObj,3)
ans = 1×3

    88    99    65

Create an arduino connection

arduinoObj = arduino("COM16","Leonardo","Libraries",{'SPI','Serial','I2C'});

Create a connection to the serial device on the Arduino hardware.

serialdevObj = device(arduinoObj,'SerialPort',1,'BaudRate', 115200, 'DataBits',8, 'StopBits', 1, 'Parity', 'even')
serialdevObj = 
  device with properties:

             Interface: 'Serial'
            SerialPort: 1
                 TxPin: 'D1'
                 RxPin: 'D0'
              BaudRate: 115200 (bits/s) 
     NumBytesAvailable: 0 

Show all properties, functions

Connect the Rx and Tx pins in loopback. Write data to the serial device.

write(serialdevObj,256,'uint16');

Check if data is available to read.

numBytes = serialdevObj.NumBytesAvailable
numBytes = 2

Read data from serial device with precision of uint16.

read(serialdevObj,1,'uint16')
ans = 256

Input Arguments

collapse all

Serial device connection, specified as a device object.

Number of bytes of data to read from the serial device, specified as a scalar.

Note

For the Arduino® Mega2560, Mega ADK, Leonardo, and Micro boards read works only for up to 63 bytes of data as the Arduino libraries do not read data into last byte of serial receive buffer. See this link for more details.

Data precision, specified as one of the following character vectors:

  • 'uint8'

  • 'int8'

  • 'uint16'

  • 'int16'

  • 'uint32'

  • 'int32'

  • 'uint64'

  • 'int64'

Output Arguments

collapse all

Data read from serial device, returned as a scalar or vector based on the precision.

More About

collapse all

Code Generation Using MATLAB Function Block

  • Use read in a MATLAB® Function block with the Simulink® Support Package for Arduino Hardware to generate code that can be deployed on Arduino Hardware.

Version History

Introduced in R2019b

See Also

| |