Main Content

read

Read data from serial device

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

Description

serialData = read(myserialdevice,count) returns data from the serial device.

The read method stops when it finishes reading the specified data from the device, or when the timeout period elapses.

example

serialData = read(myserialdevice,count,precision) overrides the default value for precision.

example

Examples

collapse all

You can connect to a serial device from the MATLAB® software, write data to the device, and read data from the device.

Create a connection from the MATLAB software to the Raspberry Pi® hardware.

mypi = raspi

Note

If you encounter errors after running the above command, try using additional arguments (as listed in raspi) or refer to Troubleshoot Connecting Issues to Raspberry Pi Hardware.

Show the location of the Tx and Rx pins, GPIO 14 (UART0_TXD) and GPIO 15 (UART0_RXD), on the GPIO header.

showPins(mypi)

Raspberry Pi hardware uses +3.3 V. Do not connect Raspberry Pi hardware directly to devices that use higher voltages.

Connect the Raspberry Pi serial port to a +3.3 V serial device.

  • To receive data, connect the RXD pin (GPIO 15 UART0_RXD) on the Raspberry Pi board to the TXD pin on the serial device.

  • To transmit data, connect the TXD pin (GPIO 14 UART0_TXD) on the Raspberry Pi board to the RXD pin on the serial device.

  • Connect a ground pin (GND) on the Raspberry Pi board to the GND pin on the serial device.

  • Connect one of the +3.3 V pins on the Raspberry Pi board to the VCC pin on the serial device.

Research the values the serial device requires for baud, data bits, parity, and stop bit.

Create a connection, myserialdevice, from the MATLAB software to the serial device.

myserialdevice = serialdev(mypi,'/dev/serial0',9600)
myserialdevice = 

  Serialdev with Properties:

        Port: '/dev/serial0'
    BaudRate: 9600
    DataBits: 8
      Parity: 'none'
    StopBits: 1
     Timeout: 10

Write a pair of values to the serial device that requires a specific data type.

write(myserialdevice,[10 12],'uint16')

Read a 100-element array of numbers from the serial port.

output = read(myserialdevice,100,'uint16')

Increase the timeout period of the serial port.

myserialdevice.Timeout = 20
myserialdevice = 

  Serialdev with Properties:

        Port: '/dev/serial0'
    BaudRate: 115200
    DataBits: 8
      Parity: 'none'
    StopBits: 1
     Timeout: 20

Input Arguments

collapse all

Connection to a serial device, specified as a serialdev object.

Example: myserialdevice

Data size to read from the serial device, specified as a scalar.

Example: 2

Data Types: double

Data precision, specified as a string. Optional.

Example: 'uint8'

Data Types: char

Output Arguments

collapse all

Data from the serial device, returned in the device- or user-defined format.

Extended Capabilities