STM32中断介绍

目录

一、STM32中断应用概览

(1)简介

(2)中断编程的顺序:

1.使能中断请求:

2.中断优先级分组:

3.配置NVIC寄存器,初始化NVIC_InitTypeDef;

4.编写中断服务函数

二、EXTI—外部中断/事件控制器

(1)简介

(2)EXTI结构图

(3)初始化结构体成员

(4)程序设计:

1.初始化要连接到EXTI的GPIO。

2.初始化EXTI用于产生中断/事件

3.初始化NVIC,用于处理中断

4.编写中断服务函数

5.main函数

一、STM32中断应用概览

(1)简介

STM32 中断非常强大,每个外设都可以产生中断,所以中断的讲解放在哪一个外设里面去讲都不合适,这里单独抽出一章来做一个总结性的介绍。

中断:把正常正在运行的程序打断,运行中断服务函数,运行完之后再回到主程序,与51大体相仿。

外部中断,体现在外设水平,系统异常,体现在内核水平。下面,中断就是异常,异常就是中断。

 

 以上向量表中,灰色标住的是体现在内核水平的(异常),其余的是外设水平的(外部中断)。

中断由NVIC这个外设来控制。

NVIC:嵌套向量中断控制器,属于内核外设,管理着包括部分内核和片上所有外设的中断相关的功能。 两个重要的库文件:core_cm3.h(定义所有内核上面的寄存器,NVIC寄存器就在这里面)和misc.h(相关的函数)。

对于中断而言,最重要的是优先级,由NVIC->IPRx(中断优先级寄存器)设定。打开内核寄存器的手册,

 这个表里面的0-80对应着向量表里面外部中断的位置0-59,每一位都有8位位宽,真正起作用的只有4位。

函数:

NVIC_SetPriority (IRQn_Type IRQn, uint32_t priority) // core_cm3.h 1586行

两个形参:中断号和优先级。中断号对应手册向量表的位置编号。

配置的时候先判断中断号是否大于0,小于0是内核的中断;大于0是外部中断。如果是外部中断,让优先级左移4位。如果是小于0,就配置另一个寄存器,SCB->SHP。

(2)中断编程的顺序:

1-使能中断请求

2-配置中断优先级分组

3-配置NVIC寄存器,初

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值