Sure it could be the problem!

I'll suggest you to use interrupt for your serial comm. Once in the ISR, do your HSERIN stuff and get out of there. The timeout may work, or not. At least the Usart have a handy 2Bytes buffer...