Main Content

Serial Receive

Receive an [Nx1] array of data on the specified serial port and write it to the Data block output. When data is not available, write 0 to the Data block output

Library

Simulink Support Package for Arduino® Hardware/Common

  • Serial Receive block

Description

Get an [Nx1] array of data on the specified serial port and write to the Data block output. For more information, see Use Serial Communications with Arduino Hardware.

The Serial Receive block has two outputs, Data and Status.

When data is available:

  • The Data block output emits data from the serial receive buffer.

  • The Status block output emits 1.

When data is not available:

  • The Data block output emits 255.

  • The Status block output emits 0.

The Data block outputs the datatypes, int8, uint8, int16, uint16, int32, uint32, double, single, or boolean based on the selected Data type parameter value on the block. The default data type is uint8.

The Status block output emits int values. You can use the Status block output to determine whether a value of 255 emitted by the Data port is data, or an indication that no data was received.

During simulations without the hardware, this block emits zeroes.

If you use this block in models with the Standard Servo Read, Standard Servo Write, and Continuous Servo Write blocks, use longer sample times to avoid overruns.

Warning

Do not connect the serial port pins to an RS-232 serial interface, such as the DE-9M connector on a computer, without limiting the voltage. The RS-232 standard allows higher voltages that can damage your hardware. For details, read the documentation for your Arduino hardware.

Parameters

Port Number

Enter the number of the serial port.

Click View pin map to open the Arduino Pin Mapping table.

To know about the fixed ports and the allocated pins for the block, see Pin Mapping for Arduino Timer Independent Blocks.

You can assign a Serial Transmit block and a Serial Receive block to the same serial port.

Do not assign more than one Serial Receive block to the same serial port.

Do not assign the pin numbers used by the serial port to other blocks within the model.

Serial port 0 is connected to the USB port through a converter. Do not use both serial port 0 and the USB port at the same time. For example, do not use serial port 0 if you intend to use External mode, because External mode requires the USB port.

Data type

Select the data type of the data you want to receive on the serial port. You can get int8, uint8, int16, uint16, int32, uint32, double, single, or boolean data type on the serial port.

Data length

Enter the number of the bytes of the selected data type to receive on the serial port.

Sample time

Specify how often this block reads the serial port buffer. Enter a value greater than zero. This value defaults to a sample time of 0.1 second. The minimum value is 0.000001 second.

Smaller values require the processor to complete the same number of instructions in less time, which can cause task overruns.