The STM32 USARTv1 driver can, under certain conditions, lose incoming charachters. This problem affects STM32F1, STM32L1, STM32F2 and STM32F4 platforms.
Workaround: Do not compile using -O2 or -O3 optimizations, -O1 and -Os are fine. Disabling CH_DBG_SYSTEM_STATE_CHECK also hides the problem regardless the choosen optimization level.
Will be fixed in version 2.4.6stable, 2.6.2stable, 2.7.0unstable, 3.0.0development.