STM32文档中关于NVIC寄存器说明的位置(4)
- UID
- 1029342
- 性别
- 男
|
STM32文档中关于NVIC寄存器说明的位置(4)
当然,你看权威指南也可以的,在其APPENDIX D:NVIC Registers Quick Reference里面也有所描述。
但还有一个问题,我怎么知道这个Interrupt Set-Enable Registers寄存器的哪个位对应哪个中断呢?例如NVIC_ISER0的第0位对应哪个呢,其实,上面的表B3-31的说明已经说了,每一位对应一个中断号,所以我们还得看看stm32F103对应的中断号,可以查阅《RM0008:Reference manual》的第10章,Interrupts and events中的中断向量表,找到对应MD容量的那个表Table 63. Vector table for other STM32F10xxx devices,前面16个M3内核的中断,不可以从这个寄存器里控制,所以不管,我们从WWDG开始,可以看到这个表中的第一列即对应于寄存器中的某位(超过31的自己换算一下即可):
可以看到,STM32F10x standard peripheral library文件stm32f10x.h中的中断号的定义是能够与这里对应上的。
另外,stm32F103RB的Datasheet(CD00161566)里面的2.3.5 Nested vectored interrupt controller (NVIC)提到F103仅有43个可屏蔽中断,所以只需用到NVIC_ISER0和NVIC_ISER1来设置启用外设中断。
【The STM32F103xx performance line embeds a nested vectored interrupt controller able to handle up to 43 maskable interrupt channels (not including the 16 interrupt lines of Cortex™-M3) and 16 priority levels.】
得查阅这么多文档,才能知道这个Interrupt Set-Enable Registers寄存器在哪里有描述,怎么设置,文档很分散。这些文档估计是程序员组织的,呵呵。因为像这些M3内核的相关模块,与外设无关的,只要是M3内核的器件都是通用的,所以不用每个器件的手册都带,这样比较节省空间,⊙﹏⊙b汗
所以,以后要是涉及到M3内核相关的,都得去查阅《M3权威指南》或者官方的《Cortex-M3 Technical Reference Manual》以及《ARMv7M Architecture Reference Manual》。 |
|
|
|
|
|