MATLAB Answers


Serial communication with arbitrary number of bytes


I'm trying to receive data from a sensor in real time. the problem is the communication protocol is entirely binary lengths varying from 3 to 20+ bytes (in one frame).

I tried two use methods:

converting my hex value into text (equivalent ascii) and sending the string. the problem is 00 is represented as the nul char and cuts my string (sending everything before the first 00).

I then tried to use the binary fwrite command, but i'm limited to 8,16,32,64 bits where as i need an arbitrary number (such as 24).

I also tried cutting my data into multiple (8bit/16bit/32bit) segments and sending them one after another, but that also doesn't work. it needs to all go at the same time.

As an example, i'd like to send '0x201000' and '0x2005503C280000' in one go.

Does anyone have any idea on how to tackle this problem?

Regards, Alex



No products are associated with this question.

1 Answer

Answer by Walter Roberson
on 8 Dec 2012
 Accepted answer

fwrite() can take arrays, each element of which is uint8()

  1 Comment

Join the 15-year community celebration.

Play games and win prizes!

Learn more
Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!