STM32‎ > ‎STM32f4discovery‎ > ‎Примеры‎ > ‎УСАПП‎ > ‎Прием строки‎ > ‎

str_util.c

Добавим объявление внешней функции приема байта:
/* 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';
}
В этой функции мы будем принимать данные пока не получим символ окончания строки, либо символы перевода на новую строку.

Comments