Receiving additional garbage data (for some characters) from STM32F103C8T6 (blue pill) UART1
I suspect  you're using the default internal HSI RC oscillator rather than a crystal and the HSE oscillator as the timing source, which is making the serial communications unreliable. If the temperature changes greatly (you can try gently heating the MCU chip as a test) it will likely fail with any adapter. The CH340 may be more tolerant to badly mistimed serial signals, depending on how they do the sampling.
So, I think the issue is not with the serial&lt;-&gt; TTL chip and associated crystal but with the setup of your chip (and the hardware).
Here (screen cap from the configuration utility) is the block diagram of the relevant part of the STM32F103C8T6 clock configuration showing it properly set up to use the 8MHz crystal.