Там не просто uart, а RS485. Попытки же добиться "универсальности на все случаи жизни" приводит к сочинению столь сложных конструкций,
Универсальность конечно не достижима.
чем написать самой с нуля без всяких классов.
Написать с нуля - не проблема.
А зачем без классов? Они ж не мешают ничем и скорей наоборот.