STM 32 外部中断

什么是外部中断 :

外部中断是单片机实时地处理外部事件的一种内部机制。当某种外部事件发生时,单片机的中断系统将迫使CPU暂停正在执行的程序,转而去进行中断事件的处理;中断处理完毕后.又返回被中断的程序处,继续执行下去

中断的功能 :
(1)实时处理功能:在实时控制中,现场的各种参数、信息均随时问和现场而变化。这些外界变量可根据要求随时向CPU发出中断申请.请求CPU及时处珲中断请求,如中断条件
(2)故障处理功能:针对难以预料的情况或故障,如掉电、存储出错、运算溢出等,可通过中断系统由故障源向CPU发出中断请求,再由CPU转到相应的故障处理程序进行处理。
(3)分时操作:中断可以解决快速的CPU与慢速的外设之问的矛盾,使CPU和外设同时工作。CPU在启动外设工作后继续执行主程序,同时外设也在工作。每当外设做完一件事就发出中断申请,请求CPU中断它正在执行的程序,转去执行中断服务程序(一般情况是处理输入/输出数据),中断处理完之后,CPU恢复执行主程序,外设也继续工作。这样,CPU可启动多个外设同时工作,大大地提高其效率。

触发方式:
外部中断的触发有两种触发方式:电平触发方式和跳沿触发方式。

其他的介绍 可以自行去百度

下面的是一个下降沿触发的中断的编写过程

由于也是基于固件库编写的 所以我们在最开始也是需要去到USER 文件夹下新建一个文件 文件夹下添加.h .c 文件 然后将这个.c 文件导入到我们的工程中
在这里插入图片描述
像这样就可以了 由于自己是基于之前的项目进行的 所以文件会有点多
然后就是添加环境 这个前面的文章也有 自己是把这个文件命名为nvic

对于nvic.h 文件

#include "stm32f10x.h"
void nvic_init(void);

在main 函数里面添加nvic_init 这个函数

nvic .c 文件
添加头文件 那些重复的操作 不在多赘述

直接开始 最重要的事
配置中断 分为下面这四步
1 .初始化用来中断的GPIO
2.初始化EXIT
3配置 NVIC (中断优先级)
4 , 编写中断函数

第一步 配置GPIO
我直接使用项目的震动感应模块的GPIO

直接来到第二步

在这里插入图片描述

找到这个结构体
在这里插入图片描述

将结构体的名字复制到nvic.c
起名

EXTI_InitTypeDef exit_init;

然后我们只需要在下面输入这个结构体名字加一个点
就可以对这个结构体的成员进行赋值
在这里插入图片描述

第三 给Nvic进行配置
在这里插入图片描述

第四 编写中断服务函数
在这里插入图片描述
我们需要在启动文件里面去找到这个函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值