嵌入式stm32软件开发——中断概念

中断就是异常,异常就是中断



一、中断基础概念

关于中断这个东西,简单来说是程序进展过程中的重要节点,而在中断这里其实就是两个“config”了咯。
一个是:static void NVIC_Configuration(void)
另一个则是:void EXTI_KEY_Config (void)
就这个的话,其实也就是两个要点所在了,一个就是main这里的主要的函数关系的书写工作,这个基本上就是一种两个config的初始化和对应关系,当然咯,这个的简单就说明了这个.c和.h文件里需要进行大量的这种代码书写工作了的。
在经历一个实践项目之后,发现这个点是很重要的:
一般来说,外设的电平的变化有两种(低变高和高变低),通过这个EXTI产生中断,然后将这个中断交给NVIC(内核)整个过程就是先从GPIO产生信号,然后交给EXTI,最后给NVIC进行管理。

二、中断的编程要点

这里的编程工作的话,包括有这样子的一些要点:

  1. 使能某个外设的中断
  2. 初始化 NVIC_InitTypeDef 结构体
    这个就是配置相对应的中断源的问题
  3. 编写中断服务函数
    在启动文件startup_stm32f429 439xx.s 中预先为每个中断都写了一个中断服务函数,只是这些中断函数都是为空,为的只是初始化中断向量表。不过实际的中断服务函数都需要重新编写,中断服务函数我们统一写在stm32f4xx_it.c这个库文件中
    然后就是其中的三点:

这两点是最基础的,然后还有就是某一个功能配置的时候要进行中断使能操作。上边那个IRQn就是用来标识中断源来的;然后下边这个IRQHandler就是用在这个中断服务函数里面的,这个是共同存在并其作用的配合关系。而后者是在启动文件里面有定义的,属于芯片内存在啊:startup_stm32f429_439xx.s(启动文件)

三、中断控制器组

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_3);
中断控制器组,事实上这个东西是可以进行挑选的,2或者3等都是能够实现,相当于一条路罢了。然后每一条路都是具备着相对应的相对应的架构存在的。
在这里插入图片描述

四、关于EXIT外部中断

Io的中断其实就是Exit这几个:
在这里插入图片描述
中断线0-4每个中断线对应一个中断函数,中断线5-9共用中断函数EXTI9_5_IRQHandler,中断线10-15共用中断函数EXTI15_10_IRQHandlera。
这个外部中断的相关设置,比这个普通中断的设置也要麻烦一些。

关注我,持续了解行业知识;如果本文让你有所收获,期待你的点赞。
如果想要获取相关知识资料,请扫码关注微信公众号:

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值