Есть ещё вариант использовать COBS + ProtocolBuffers (nanopb для ESP, под STM не знаю, что за либа).
COBS гарантирует, что не будет нулевых байтов в данных, поэтому такие байты можно использовать как разделители пакетов. Учитывая, что можно настроить аппаратную детекцию нулевого байта, остаётся только правильно вычитать данные и пробовать декодировать.
Ну а ProtocolBuffers уже использовать или не использовать - на ваше усмотрение, в принципе можно и обычными структурами обмениваться, просто PB кроссязычный
Есть ещё вариант использовать COBS + ProtocolBuffers (nanopb для ESP, под STM не знаю, что за либа).
COBS гарантирует, что не будет нулевых байтов в данных, поэтому такие байты можно использовать как разделители пакетов. Учитывая, что можно настроить аппаратную детекцию нулевого байта, остаётся только правильно вычитать данные и пробовать декодировать.
Ну а ProtocolBuffers уже использовать или не использовать - на ваше усмотрение, в принципе можно и обычными структурами обмениваться, просто PB кроссязычный
Странно, что не упомянули Highfleet