Добавим функцию приема байта:
/*USARTx receive byte */char usart_receiveb(USART_TypeDef * USART) { while ((USART->SR & USART_SR_RXNE) == 0); return USART->DR;}Функция принимает указатель на УСАПП, а возвращает символ принятый УСАППом. в функции есть ожидание окончания приема.