stm32f0 uart1 rx interrupt
You do not use CMSIS only some kind of mix of everything.

No NVIC structures needed. (of course the rest of the usart init is needed)

USART1-&gt;CR1 = USART_CR1_UE | USART_CR1_TE | USART_CR1_RE | USART_CR1_RXNEIE; 
NVIC_EnableIRQ(USART1_IRQn);


in the interrupt routine you need to clear the RXNE flag by reading from the data register - USART1 -&gt; RDR