中断是单片机中最重要的一个功能了,通过中断可以提高程序的运行效率,可以是单片机及时的响应各种外设的请求。STM32系列单片机的中断主要由嵌套向量中断控制器来管理。
嵌套向量中断控制器特性如下:
- 68个可屏蔽中断通道(不包含16个CortexM3的中断线);
- 16个可编程的优先等级(使用了4位中断优先级);
- 低延迟的异常和中断处理;
- 电源管理控制;
- 系统控制寄存器的实现;
嵌套向量中断控制器( NVIC ) 和处理器核的接口紧密相连,可以实现低延迟的中断处理和高效地
处理晚到的中断。
外部中断/事件控制器由19个能产生事件/中断请求的边沿检测器。每个输入线可以独立地配置输入类型(脉冲或挂起)和对应的触发事件(上升沿或下降沿或者双边沿都触发)。每个输入线都可以独立地被屏
蔽。挂起寄存器保持着状态线的中断请求。
EXTI控制器的主要特性如下:
- 每个中断/事件都有独立的触发和屏蔽
- 每个中断线都有专用的状态位
- 支持多达20个软件的中断/事件请求
- 检测脉冲宽度低于APB2时钟宽度的外部信 。参见数据手册中电气特性部分的相关参数。
中断控制框图如下:
通过上图可以看出所有的P0口对应的都是中断线0,所有的P1口对应的都是中断线1,依次类推。这里使用的三个按键分别是PC1、PC13、PA0,也就是对应的中断线为中断线1、中断线13、中断线0。
中断线设置完成之后,还需要设置中断分组,也就是设置中断的优先级,当中断同时触发的时候,优先级越高的中断优先处理。
中断线设置好之后,还需要提供中断入口函数,因为中断触发后,系统就会自动跳转到中断入口函数中,执行中断函数的代码。每个中断入口的函数名称都是固定的,不能自己定义。中断函数的入口名称可以在startup_stm32f10x_hs.s文件中查看。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!