Текст заголовка сообщения полностью: 16МГц/(2*115200)=69 тактов. Где 2 - минимальный оверсемплинг. За 69 тактов Вы 4 раза проверяли статусы и писали и читали буферы?! С софтовыми UART'ами!?
Позволю себе не поверить в достоточность реально достижимой производительности