UART receiving random values
The problem is sending constant data stream without any pauses between symbols.
The ASCII symbol 'S' has a value of 0x53, so it is sent over the wire as repeating pattern of 0110010101 which includes the start and stop bits.
Because there is no pauses between transmissions, the receiving UART does not know which bits are the start and stop bits in the constant data stream, so it may synchronize to any wrong but valid-looking point in the stream.
There are 4 combinations of valid symbols when sending out ASCII letter 'S' constantly. In addition to the 'S', they are the following:
0101011001 is one combination that also looks like perfectly valid symbol, that's 0x35, the ASCII symbol '5' you are seeing.
0101100101 is another one, that is 0x4D, the ASCII symbol 'M'.
0010101011 is another one, that is 0xAA, which is an unprintable ASCII character, the box you are seeing.
This is why there should never be a constant symbol transmission, at least occasionally an idle space that is longer than one symbol should be sent to make the receiving UART to synchronize properly on the actual start bit.