- STM32 中断非常强大,每个外设都可以产生中断
- 中断优先级数值越小级别越高
- 中断的类型分两类: 1. 系统异常(contex M3) 2.外设中断
一. 中断由谁管理? NVIC
二. 关于中断"软件优先级"顺序
先选组, 再选:抢占优先级 , 再选子优先级
三. 中断编程的顺序
1. 使能中断请求
外设中断使能有两扇大门 1. 外设中断使能 2.NVIC中断使能
本步骤仅仅使能 外设中断使能寄存器位
NVIC中断使能就是后面的步骤
2. 配置中断优先级分组(先选组)
设置优先级分组可调用库函数misc.c 和 misc.h
中的NVIC_PriorityGroupConfig()
实现
3. 配置NVIC寄存器,初始化NVIC_InitTypeDef;
- 参数1 : 中断源, 这是一个NVIC_IRQChannel类型的数据, 其已经在
stm32f10x.h
文件中枚举定义好了
- 参数2: 抢占优先级
优先级分组按照以下规则
- 参数3: 子优先级
还是看上表
- 参数4: 使能, 可选ENABLE or DISABLE
4. 调用初始化函数
第三步实例化一个NVIC_InitTypeDef类型数据 就是给它用的
5.编写中断服务函数
中断服务函数不能随便起名, 因为他们的名字已经在启动文件中定义好了
中断服务函数写在哪???
写在stm32f10x_it.c
文件中, 里面已经定义了一些内部中断函数
并且为外设中断服务函数留好了空间.
网友评论