В приведённом коде использована функция
Serial.print(). То есть код просто пишет в порт два символа - '2' и '2'.
На входе принимаем следующий текст - '22222222222222222222222222222222222222222222222222222'.
В какой-то момент буфер заполняется и происходит чтение с последующим разбором. Сколько при этом символов в буфере - сколько есть, столько и будет передано.
Логичнее было бы использовать какой-нибудь символ-разделитель. Например, перенос строки. Чтобы в буфере было '22\r\n22\r\n22\r\n22\r\n'.
Для этого достаточно использовать функцию
Serial.println() вместо
Serial.print().