I agree that handshake should be incorporated and the STM32 does even support it in hardware and I’ve raised this as a feature request ages ago, but it was never take up.
If you do need to transmit/receive data considerably longer than 63 byte I’d go with @peekay123 's suggestions too.
But as I understand your original post you normally only have 62 byte, you should be safe by just limiting the transmitters update frequency.
If you really need to go that close to the limit you’d also have alternative routes - e.g. building the firmware locally with stretching the SERIAL_BUFFER_SIZE.
As for my other suggestion, I’d rather have thought of something like
Transmitter:
...
while(digitalRead(D7)); // make sure to keep this < 4000ms by the receiver
Serial1.write(yourString);
...
Receiver:
...
char recString[256];
int i = 0;
...
digitalWrite(D7, LOW);
while(!Serial1.available()); // should be well bellow < 1ms
while(Serial1.available())
{
recString[i++] = Serial1.read();
}
recString[i] = '\0';
i = 0;
digitalWrite(D7, HIGH);
...
As said this is not meant for production use but only to see the effect of async/sync data transfer in conjunction with the 64 byte RX buffer limit.