中断
中断管理
中断的寄存器
NVIC_IRQChannelPreemptionPriority抢占优先级位
NVIC_IRQChannelSubPriority响应优先级位
通道
抢占优先级,响应优先级
先设置分组
再初始化中断优先级和响应优先级
外部中断
STM32的每一个IO口都可以作为外部中断输入
STM32的中断控制器支持19个外部中断/事件请求:
线0-15:连接到PVD输出
线17:连接到RTC闹钟事件
线18:连接到USB事件
每个外部中断线都可以独立的配置触发方式(上升沿,下降沿或者双边沿触发,触发/屏蔽,专用的状态位)。
从上面可以看出,STM32供IO使用的中断线只有16个,但是STM32F10x系列的IO口多达上百个,中断线如何与IO口对应?
对于每个中断线,可以设置相应的触发方式(上升沿触发,下降沿触发,边沿触发)以及使能。
IO口外部中断只分配了7个中断函数
5:9,10:15分别共用一个中断服务函数
配置外部中断的步骤
1.设置IO与中断线的映射关系
2.初始化中断线:触发方式等
3.判断中断线中断状态,是否发生
4.清楚中断线上的中断标志位
中断初始化函数
外部中断的一般配置步骤
1.初始化IO口作为输入
2.开启IO口复用时钟
3.设置IO口与中断线的映射关系
4.初始化线上中断,设置触发条件等
5.配置中断分组(nvic),并使能中断
6.编写中断服务函数
7.清楚中断标志位