MATLAB Answers

Simulink/Arduino: serial receive byte stream

6 views (last 30 days)
Daniel Gelman
Daniel Gelman on 21 Aug 2020
Answered: Amrtanshu Raj on 31 Aug 2020
Hello,
I am using Simulink to receive serial data via Arduino, which is receiving three bytes (unit8) of data from a 2nd microcontroller. The 3-byte packet includes a startChar and 2 bytes of data, illustrated below.
Occasionally, if I reset the transmitting microcontroller, I notice the receiving bytes get jumbled and the starChar (36) is positioned either in the 2nd or 3rd index of the byte array. As a result this will completely ruin the rest of my model. To fix this I need to keep resetting the tranmistting controller.
What can I do to prevent this from happening?

  5 Comments

Show 2 older comments
Walter Roberson
Walter Roberson on 25 Aug 2020
ir looks to me as if $ is not necessarily invalid as a packet? That in theory you could get even $$$ as a packet?
Amrtanshu Raj
Amrtanshu Raj on 26 Aug 2020
Is your transmitting microcontroller also a arduino? What is the method of resetting the transmitting microcontroller?
Daniel Gelman
Daniel Gelman on 26 Aug 2020
Amrtanshu, yes the transmitting microcontroller is an Arduino.

Sign in to comment.

Answers (1)

Amrtanshu Raj
Amrtanshu Raj on 31 Aug 2020
Hi,
As far as I understand your problem, you are randomly resetting the transmitting microcontroller which is causing the input data stream to be jumbled up.
A possible work around to this problem can be achieved by adding the subsystem in the attached file between the serial port and the display.
Hope this helps!

  0 Comments

Sign in to comment.

Categories

Products


Release

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!