diff --git a/examples/stm32/obldc/usart_irq/usart_irq.c b/examples/stm32/obldc/usart_irq/usart_irq.c index 2d4dd06b..7e5f9719 100644 --- a/examples/stm32/obldc/usart_irq/usart_irq.c +++ b/examples/stm32/obldc/usart_irq/usart_irq.c @@ -80,7 +80,8 @@ void usart1_isr(void) static u8 data = 'A'; /* Check if we were called because of RXNE. */ - if ((USART_SR(USART1) & USART_SR_RXNE) != 0) { + if (((USART_CR1(USART1) & USART_SR_RXNEIE) != 0) && + ((USART_SR(USART1) & USART_SR_RXNE) != 0)) { /* Indicate that we got data. */ gpio_toggle(GPIOA, GPIO6); @@ -92,7 +93,8 @@ void usart1_isr(void) } /* Check if we were called because of TXE. */ - if ((USART_SR(USART1) & USART_SR_TXE) != 0) { + if ((USART_CR1(USART1) & USART_SR_TXEIE) != 0) && + ((USART_SR(USART1) & USART_SR_TXE) != 0)) { /* Indicate that we are sending out data. */ gpio_toggle(GPIOA, GPIO7);