work.c

Добавим фунцию получения символа, в которой мы будем осуществлять прием символа и запускать его обработку:
void get_char(void) {
    inter_menu(usart_receiveb(USART1));
    /* put intro char */
    usart_sendb(USART1, '#');
}
Также необходимо в коде функции work() активировать прерывания по приему байта для УСАПП №1:
    /* usart1 enable interupt if receive register not empty */
    USART1->CR1 |= USART_CR1_RXNEIE;
Не забудем включить прерывание для этого блока:
    /* enable interrupt */
    NVIC_EnableIRQ(USART1_IRQn);
И выведем приглашение, т.к. прерывание сработает после приема символа:
    /* put intro char */
    usart_sendb(USART1, '#');

Comments