When setting or clearing NVIC Interrupts without library functions the |= operator doesnt work. When I used it, all other interrupts were cleared.
The stm32F103 Datasheet says that the actual enable state can be read from both ICER or ISER register.
Doesnt work: (IR29 just an example):
NVIC->ICER[0] |= (1UL << 29) // Disables all other interrupts too !!
.
Writing with = operator works:
NVIC->ICER[0] = (1UL << 29) // Disables only Interrupt 29
Keil uvision 4.71.2.0
View all questions in Keil forum