STM32-中断

一、何为中断

我们知道代码执行顺序是自上而下依次执行的,当CPU正在处理事件A的时候突然发生了事件B,此时CPU产生中断请求,停下了对A的执行而转去执行B,当事件B处理完毕后,返回来继续执行事件A,这样的一个过程就叫做中断

二、NVIC向量中断控制器

NVIC是中断控制器,控制着整个芯片的中断相关的功能,他跟内核紧密联系,是内核里的一个外设,具有 82 个可屏蔽中断通道,16 个可编程优先级(使用了 4 位中断优先级)

中断优先级:NVIC-IPR寄存器是用来配置中断优先级的,原则上每个外部中断可配置的优先级为0~255,但是大多数内核进行阉割后优先级一般只有高四位

三、EXTI外部中断

1、EXTI介绍

外部中断/事件控制器包含多达 23 个用于产生事件/中断请求的边沿检测器。每根输入线都可 单独进行配置,以选择类型(中断或事件)和相应的触发事件

2、EXTI框图

3、外部中断/事件线映射

多达 140 GPIO 通过以下方式连接到 16 个 外部中断/ 事件线:

 

 注:其中每根中断线能够映射多个IO口,但是同一组的IO口里面一次有且只有一个能够占用中断线

四、外部中断配置步骤及程序

1、使能SYSCFG时钟

RCC_APB2PeriphClockCMD(RCC_APB2Periph_SYSCFG,ENABLE);

2、初始化IO口为输入模式

GPIO_Init();

3、设置IO口与中断线的映射关系

void SYSCFG_EXTILineConfig();

4、初始化线上中断,设置触发条件等

EXTI_Init();

5、配置中断分组(NVIC),并使能中断

NVIC_Init();

6、编写中断服务函数

EXTIx_IRQHandler();

7、清除中断标志位

EXTI_ClearITPendingBit();

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值