cancel
Showing results for 
Search instead for 
Did you mean: 

NVIC registers undocumented?

psusi
Associate II

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?

4 REPLIES 4

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

https://www.st.com/resource/en/programming_manual/dm00046982-stm32-cortex-m4-mcus-and-mpus-programming-manual-stmicroelectronics.pdf

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

>>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.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
psusi
Associate II

I managed to guess that and got it working but it would be nice if either the ST or ARM manuals actually said that.

RM0365 Reference manual, page 1

Related documents

• STM32F302xB/C, STM32F302xd/E and STM32F302x6/8 datasheets available from

www.st.com

• STM32F3xx/F4xx ARM® Cortex®-M4 programming manual (PM0214) available from

www.st.com.

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.