Don Kaban: передача списком инициализации - тоже вариант, но работает на C++ и версия должна быть 11 и старше.
Однако, в этом варианте можно либо передавать массив фиксированного размера (array), либо завязываться на передачу массива через кучу(vector), что может оказаться накладным. Добавлю вариант к решению.
Niki-Z: ну еще можно при помощи К155ЛА3 или ее прямого аналога организовать переключение имеющегося UART на разные направления - но это уже извращение.
Niki-Z: а исходник библиотеки? В целом, я знаю решение, которое точно сработает - вышвырнуть ардуинскую библиотеку и написать все на чистом C с использованием прерываний.
а еще лучше, начать использовать size_t по назначению: