美文网首页
外部中断

外部中断

作者: 恰似一碗咸鱼粥 | 来源:发表于2019-07-18 22:14 被阅读0次

对于STM32F103来说,其含有16条中断线,每一个中断线与GPIOx.0~x.15对应起来,比方说中断线0对应GPIOA.0,GPIOB.0.....GPIOG.0。
在库函数中,GPIO与中断线的映射函数为GPIO_EXTILineConfig(),例如GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource2)表示将E口与第二条中断线相连,即GPIOE.2。
接下来初始化参数,通过EXTI_Init(关于init的structure的指针),参数的数据类型为EXIT_InitTypeDef*,它有四个参数要设置,分别是中断线的标号EXTI_Line,分别是EXIT_Line0~15,第二个是中断模式,第三个是触发方式,分别是下降沿触发,上升沿触发或者任意电平触发,第四个参数是使能中断线。
然后再设置中断的优先级,这个代码在串口中也有。
接着编写中断服务函数,中断函数的名字已经事先定义过EXITx_IRQHandler,其中0-4一个中断线对应一个中断函数,5-9共用一个,10-15共用一个。在编写中断函数时经常用到EXTI_GetITStatus(EXIT_Line),用于判断这条线上是否发生了中断,另一个函数是用来清除中断标志位,一般用于中断函数结束前

void EXTI3_IRQHandler(){
  if(EXTI_GetITStatus(EXTI_Line)!=RESET){//判断中断是否发生
    /*code*/
  EXTI_ClearITPendingBit(EXTI_Line3);//清除中断标志位
  }
}

所以使用一个中断的步骤为
(1)初始化IO口
(2)开启AFIO时钟
(3)设置IO口与中断线的映射关系
(4)初始化线上中断,设置触发条件
(5)配置中断分组(NVIC),并使能中断
(6)编写中断函数

相关文章

  • 外部中断

    I: 为了使我们的工作和生活更加高效,我们常常会为自己制定一个计划,有时会把这个计划写出来,有时这个计划会在我们心...

  • 外部中断

    对于STM32F103来说,其含有16条中断线,每一个中断线与GPIOx.0~x.15对应起来,比方说中断线0对应...

  • STM32一文通(6) 外部中断

    一. 外部中断/事件控制器 (EXTI) 什么是中断?中断就是打断程序执行顺序的外部输入什么是事件?事件是外部输入...

  • stm32f4系列外部中断的配置

    一,外部中断简介 1.1 CM4 内核支持 256 个中断,其中包含了 16 个内核中断和 240 个外部中断,...

  • 9.18学习总结

    今天讲了中断优先级管理NVIC,它包括:NVIC中断优先级分组、中断优先级设置;还讲了外部中断:外部中断概述、外...

  • 内部中断和外部中断

    你一定有过这样的体验,好不容易集中好时间,努力学习、工作,但效果不佳。为什么呢?什么东西影响了效果? 大概率上,答...

  • 调整你的番茄钟,让它更适合你自己!

    上次我们说了内部中断,今天我们来讲解外部中断,以及预估和改进自己的番茄钟,从而让它更适合你自己。 外部中断 外部中...

  • 16 外部中断

    单片机STC89C52学习——16 外部中断 汇总:00 单片机STC89C52学习参考教程:普中科技 接上篇:1...

  • arduino 外部中断

    1 函数 2 接线图 3 代码 程序不停等待 如果发生中断 优先执行中断程序

  • 外中断的5--9如何使用

    首先要了解一点,外部中断5-9的中断优先级设置是没办法单独给外部中断5或者外部中断7设置,这几个是统一设置,也就是...

网友评论

      本文标题:外部中断

      本文链接:https://www.haomeiwen.com/subject/nqnrlctx.html