Передавать надо промежуточный буфер. а у Вас передаются данные из меняющейся переменной. Вот и выходят казусы.
Введите промежуточную переменную, к-я не будет меняться во время ВСЕЙ длительности передачи, т.е. менять её только ПЕРЕД началом новой передачи