EXIT、NVIC中断配置

EXIT、NVIC中断配置
以配置PG8为例

1.配置GPIO为输入模式
使能GPIO和AFIO的时钟
电路中上拉,芯片也应设置为输入上拉模式(CRH、ODR)

2.AFIO-EXTICR3的配置
配置成PG引脚的
EXIT、NVIC中断配置_第1张图片

3.查找中断向量表(stm32参考手册table 63)
EXIT、NVIC中断配置_第2张图片
PG8 -> EXTI8 -> EXTI9_5 中断号是23(后面配置NVIC用到)

4.配置EXTI寄存器
通过External interrupt/event controller block diagram外部中断/事件控制块图及手册说明可知
EXIT、NVIC中断配置_第3张图片
如果要产生中断,必须事先配置好并使能中断线。
根据需要的边沿检测设置2个触发寄存器,同时在中断屏蔽寄存器(IMR)的相应位写1允许中断请求。
当外部中断线上发生了需要的边沿时,将产生一个中断请求,对应的挂起位也随之被置1。
在挂起寄存器的对应位写’1’,可以清除该中断请求。
综上:
设置中断边沿触发:FTSR、RTSR
关中断屏蔽(置1)

5.设置中断分组SCB_AIRCR

4位指定中断源的优先级
第0组:所有4位用于指定响应优先级
第1组:最高1位用于指定抢占式优先级,最低3位用于指定响应优先级
第2组:最高2位用于指定抢占式优先级,最低2位用于指定响应优先级
第3组:最高3位用于指定抢占式优先级,最低1位用于指定响应优先级
第4组:所有4位用于指定抢占式优先级
EXIT、NVIC中断配置_第4张图片

EXIT、NVIC中断配置_第5张图片

6.配置NVIC
EXIT、NVIC中断配置_第6张图片
这里用到 使能寄存器ISER、优先级寄存器IPR
上面我们通过中断向量表可知EXTI9_5中断号为23,用到第0组的寄存器
EXIT、NVIC中断配置_第7张图片
6.1 ISER[0]第23位置1
6.2 配置NVIC优先级寄存器IPR
EXIT、NVIC中断配置_第8张图片
例:若所设中断分组为第二组,2位抢占、2位响应,
若设置PG8所触发中断抢占优先级为2,响应优先级为1,即1001,填入IPR寄存器里对应位置
7.写中断服务程序
服务程序必须和汇编中的中断向量表中名一致

中断服务程序结束要在挂起寄存器的对应位写1,可以清除该中断请求。

你可能感兴趣的:(嵌入式)