关于STM32中NVIC与EXTI之间的关系,以及对通过外设K1来控制RGB彩灯亮暗的编程

1、EXTI的功能

  EXTI(External interrupt/event controller),中文名称:外部中断/事件控制器。其管控了从EXTI0到EXTI19的20个中断/事件控制线,每条输入线都可以独立地配置输入类型以及相应的触发事件(通过查询stm32f10x_exti.h中对结构体EXTI_InitTypeDef的定义来配置)。

  下图为EXTI的控制器框图:

  从上图我们可以看出,EXTI有两大功能,分别是产生中断和产生事件,接下来我们主要探究产生中断的过程。首先,输入线可以通过AFIO的外部中断寄存器来任意配置相对应的IO口,用来接受产生变化的电平信号,一旁的边沿检测电路会根据上升沿触发选择寄存器(EXTI_RTSR)和下降沿触发选择寄存器(EXTI_FTSR)对应位的配置来控制对应的信号触发。接下去,我们只需要将中断屏蔽寄存器(EXTI_IMR)设置为1,就可以将中断信号输入到NVIC中断控制器中,从而实现中断控制。

2、NVIC的功能

  NVIC(Nested Vectored Interrupt Controller),中文名称:嵌套向量中断控制器。

  它是STM32core peripherals的其中之一,它的作用是,当中断发生时,NVIC 将比较新中断与当前中断的优先级,如果新中断优先级高,则立即处理新中断。

3、NVIC和EXTI的关系

  每个外设中断优先级都有与之相对应的编号,编号越小,优先级越高,部分中断请求优先级所对应的编号如下图所示(具体可查询stm32f10x.h,从169行开始)。

 从上图我们可以看出,EXTI是NVIC中的成员,NVIC中,IRQ分为电平上升或下降沿触发和脉冲输出触发两种。前者的中断需要相应外设来取消,因此外设可以控制处理器重复执行相应的ISR;后者由处理器时钟的上升沿同步采集,因此需要外设将中断保持至少一个时钟周期。对于软硬件控制中断挂起和取消中断信号的条件等。

  4、控制RGB灯亮暗的软件设计

    4.1 编程要点

    1) 初始化用来产生中断的GPIO。

    2) 初始化EXTI。

    3) 配置NVIC。

    4) 编写中断服务函数

   4.2 

  按键和EXTI的宏定义(使用宏定义,有利于程序的移植以及升级)。

GPIO配置

NVIC配置(如果有两个中断同时申请,按照抢占优先级、响应优先级、硬件优先级逐次比较)

 EXTI中断配置

 main函数

  

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值