Добавим фунцию получения символа, в которой мы будем осуществлять прием символа и запускать его обработку:
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, '#');