The following function allows you to read a binary message, prefixed by a single length
byte, from Serial
:
#include <Arduino.h> void setup() { Serial.begin(115200); } void HandleMessage(String msg) { // TODO: Your code to handle the message goes here. // See https://techoverflow.net/2022/11/15/how-to-print-string-as-sequence-of-hex-bytes-in-arduino/ // for an example of how to print the message as a sequence of hex bytes. } void ReadMessageFromSerial() { // Wait until the length byte is available on Serial while (Serial.available() == 0); // Read the length of the message int length = Serial.read(); // Read the rest of the message String message = ""; for (int i = 0; i < length; i++) { while (Serial.available() == 0); message += char(Serial.read()); } // Handle the message HandleMessage(message); } void loop() { ReadMessageFromSerial(); }