Добавим объявление внешней функции приема байта:
/* extern functions */extern usart_sendb(USART_TypeDef * USART, char byte);extern char usart_receiveb(USART_TypeDef * USART);А также, создадим функцию прием строки в выделенный буфер:
/* USARTx receive string */void usart_receives(USART_TypeDef * USART, char * buffer) { char * pbyte = buffer; char byte; while (byte = usart_receiveb(USART)) { usart_sendb(USART, byte); *pbyte++ = byte; if (byte == '\n' || byte == '\r') break; } *pbyte = '\0';}В этой функции мы будем принимать данные пока не получим символ окончания строки, либо символы перевода на новую строку.