код из прерывания UART'а:
Код
uint32_t status = uart_hw->SR;
// receiver not empty
if (USART_SR_RXNE & status)
{
uint16_t data = uart_hw->DR;
if (parity_en) // "срезать" бит чётности
data &= 0xFF;
parity_en - флажок из настроек драйвера (он многофункциональный).