Добавляем в инит USART'а :
Код:
USART1->CR1 |= USART_CR1_TE |USART_CR1_RE|USART_CR1_RXNEIE; //
NVIC_SetPriority(USART1_IRQn, 0);
NVIC_EnableIRQ(USART1_IRQn);
USART_CR1_RXNEIE разрешение прерывание от приемника.
NVIC_SetPriority() установка приоритета прерывания
NVIC_EnableIRQ() разрешение прерывания , в нашем случае от USART1
Эти функции входят в CMSIS-CORE, так что не SPL.
Описываем обработчик (хэндлер) прерывания от USART1 .
Код:
void USART1_IRQHandler(void)
{
uint8_t buff;
if(USART1->SR & USART_SR_RXNE)
{
buff = (uint8_t)(USART1->DR); /* Receive data, clear flag */
}
}
Для отладки можно копировать переменную buff в глобальную переменную , и добавить эту глобальную переменную в Watch ...