对于中断的笔记

文章详细介绍了嵌套向量中断控制器(NVIC)和外部中断事件控制器(EXTI)的工作原理及其在STM32微控制器中的应用。NVIC支持中断优先级和嵌套,EXTI则用于外部硬件事件的检测和处理。STM32通过AFIO进行IO复用和EXTI映射配置。文章还涵盖了中断的启用、配置和处理流程。

我们首先要区分内核与外设。内核是为众多应用程序提供对硬件的安全访问的软件芯片,如Cortex_M4,是ARM公司开发的。外设是ST公司在拿到这个内核后,制作了相应的硬件,如GPIO、RTC以及USART等等,输入输出、外储存器统称为外设。

异常是对所有能打断程序正常执行的统称,中断属于一种异常。在内核中,异常就叫异常,而在外设中,异常被称为中断。

图片来源:@rivencode

那么我们就来介绍中断的两个板块:NVIC和EXTI。

1.NVIC(Nested vectored interrupt controller,嵌套向量中断控制器)

NVIC属于内核部分,如上图所示,设置在Cortex_M3/4/7中。它支持256个中断(16个内核中断和240个外部中断),支持256个优先级(过于豪华,所以是允许芯片公司进行裁剪的),以STM32F103xx为例,它只有10个内核中断、60个外部中断和16个优先级,相比之下就简单很多,也降低了成本。

不管是内部中断还是外部中断,都是有相应的中断服务函数,而该函数是被定义在中断向量表中的。中断向量表是一块已定义的4字节对齐内存,存放各个中断服务函数程序的首地址。比如在main函数运行的时候,会被其他的中断服务函数打断,因为main函数的优先级最低。

图片来源:正点原子

接下来介绍NVIC相关的寄存器。

中断使能寄存器有8个32位寄存器,对应的是240位外部中断(32*8=256,有16个空闲),每位控制一个中断,当使用HAL_NVIC_

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值