2020-06-08 08:44 AM
RM0365
Reference manual
STM32F302xB/C/D/E and STM32F302x6/8
advanced ARM®-based 32-bit MCUs
Section 13 describes the NVIC but is missing the sub section describing the registers to actually manipulate it. I can see from the debugger that its registers are in the 0xe000 block of memory and even searching for this address doesn't turn up anything. What gives? How can I enable the I2C1 interrupt?
2020-06-08 09:43 AM
It is in the CORE, so ARM documentation is what you need to review
Perhaps look at ST's PROGRAMMING MANUAL, or the ARM Cortex-M4 TRM
2020-06-08 09:45 AM
>>How can I enable the I2C1 interrupt?
Figure out what the interrupt number is from the Reference Manual, or Include files, and then use that INDEX to determine the bits within the NVIC to enable. Pretty sure the RM has an interrupt enumeration table if you look.
2020-06-09 11:26 AM
I managed to guess that and got it working but it would be nice if either the ST or ARM manuals actually said that.
2020-06-09 11:34 AM
RM0365 Reference manual, page 1
Related documents
• STM32F302xB/C, STM32F302xd/E and STM32F302x6/8 datasheets available from
• STM32F3xx/F4xx ARM® Cortex®-M4 programming manual (PM0214) available from
PM0214 Programming manual
4.3.2 Interrupt set-enable register x (NVIC_ISERx)
4.3.3 Interrupt clear-enable register x (NVIC_ICERx)
4.3.11 NVIC register map
This table shows the NVIC register map and reset values. The base address of the main
NVIC register block is 0xE000E100.