这次主要记录中断的编写过程。
在32中对于中断函数的编写,首先需要配置 NVIC 和 EXTI,首先要配置 NVIC ,其中包括中断优先级, 中断源,以及中断类型等,主要依据 misc.h
中的 NVIC_InitTypeDef
来编写。
之后配置EXTI的结构体的相关寄存器,根据EXTI_InitTypeDef 配置即可。
在这之后便可以在 stm32f10x_it.c 中快乐的编写中断函数了,当然还会有一些细节注意下面会记录。
NVIC(嵌套向量中断控制器)是属于 cortex-m3 内部的一个外设,用于控制这整个芯片的中断系统,与内核紧密耦合,大部分芯片厂商在设计时会将 NVIC 进行裁剪,所以所32中的 NVIC 是原 NVIC 的子集。
NVIC寄存器
关于 NVIC 的相关寄存器信息在《Cortex-M3 内核编程手册》 -4.3.11:NVIC 寄存器映射中找到。同时关于 NVIC 的一些声明在 core_cm3.h 末尾中可以找到一些函数用来配置 NVIC。
下面是 NVIC 的结构体
typedef struct {
uint8_t NVIC_IRQChannel; // 中断源
uint8_t NVIC_IRQChannelPreemptionPriority