STM32 关于外部中断线、中断源和中断服务函数的问题

中断线问题:

上图可以看出,PA0、PB0...PG0共用的EXTI0中断线,PA1、PB1...PG1共用的EXTI1中断线,也就是 编程里面的(如下图库文件),对应16个中断线,后面三个是专用的中断线,不做讨论。

有人要问,假设:我设置的引脚是PB9和PE9都开启外部中断怎么办?小编告诉你,这还真办不了,我实测过。配置函数的时候后覆盖之前的函数的(如下图所示)

如果这样配置的话,会出现出货光电1的初始化覆盖掉编码盘的初始化,说白了就是编码盘的设置被覆盖掉了,结果是外部中断  出货光电1管脚会触发而编码盘就不起作用了,这也是STM32其中一个问题所在吧! 反过来,结果是外部中断  编码盘 管脚会触发 而 出货光电1管脚就不起作用了!

中断源问题:

  GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource0); //设置GPIOX中断源以及哪个中断脚EXTI_InitStructure.EXTI_Line = EXTI_Line0;//中断线EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;//设置为外部中断模式EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;//上升沿触发EXTI_InitStructure.EXTI_LineCmd = ENABLE;//中断线使能EXTI_Init(&EXTI_InitStructure);//配置使能

中断服务函数:

简单的配置:

void EXTI15_10_IRQHandler(void)//中断服务函数,如果中断线是10-15。
{if(EXTI_GetITStatus(EXTI_Line10) != RESET) {Beep_ON;SOFT_DELAY; Beep_OFF;EXTI_ClearITPendingBit(EXTI_Line10);     }  if(EXTI_GetITStatus(EXTI_Line11) != RESET) {Beep_ON;SOFT_DELAY; Beep_OFF;EXTI_ClearITPendingBit(EXTI_Line11);     }  if(EXTI_GetITStatus(EXTI_Line12) != RESET) {Beep_ON;SOFT_DELAY;Beep_OFF;EXTI_ClearITPendingBit(EXTI_Line12);     }  void EXTI9_5_IRQHandler(void)//中断服务函数,如果中断线是5-9。
{if(EXTI_GetITStatus(EXTI_Line5) != RESET) {Beep_ON;SOFT_DELAY; Beep_OFF;EXTI_ClearITPendingBit(EXTI_Line5);     }  if(EXTI_GetITStatus(EXTI_Line8) != RESET) {Beep_ON;SOFT_DELAY; Beep_OFF;EXTI_ClearITPendingBit(EXTI_Line8);     }  if(EXTI_GetITStatus(EXTI_Line9) != RESET) {Beep_ON;SOFT_DELAY;Beep_OFF;EXTI_ClearITPendingBit(EXTI_Line9);     }  

每个中断服务函数代表一个或者一类,上面的代码说明:只要是中断线在EXTI_Line   10-15 的,中断服务函数就只有一个,但是由于中断线只有唯一性,可以在中断服务函数里面判断到底是哪个中断线触发,这也保证不会误触发或者是占线的一系列的问题。

如上图,外部中断分为几类:如下:

  DCD     EXTI0_IRQHandler           ; EXTI Line 0//只是管脚的中断服务函数,还有串口等等中断服务函数DCD     EXTI1_IRQHandler           ; EXTI Line 1             DCD     EXTI2_IRQHandler           ; EXTI Line 2DCD     EXTI3_IRQHandler           ; EXTI Line 3DCD     EXTI4_IRQHandler           ; EXTI Line 4DCD     EXTI9_5_IRQHandler         ; EXTI Line 9..5DCD     EXTI15_10_IRQHandler       ; EXTI Line 15..10

所以在配置外部中断服务函数或者其他中断服务函数的问题时,参照:库启动件 startup_stm32f10x_hd.s

此文章只是个人交流,学术有限!不足之处,望各位爱好者批评指正!

STM32 关于外部中断线、中断源和中断服务函数的问题相关推荐

  1. stm32共用外部中断线问题小结;不同的端口同一pin;不同pin同一个端口;几个pin共用服务函数等

    1.问题来源: stm32内部资源有限,因此产生了很多共用资源,其中外部中断也是其中之一.外部中断的共用资源主要包括: (1)不同端口.同一pin口,共用一个中断线:如PA1.PB1.PC1共用外部中 ...

  2. hal库开启中断关中断_「正点原子NANO STM32开发板资料连载」第十章 外部中断实验...

    1)实验平台:ALIENTEK NANO STM32F411 V1开发板 2)摘自<正点原子STM32F4 开发指南(HAL 库版>关注官方微信号公众号,获取更多资料:正点原子 第十章 外 ...

  3. 【STM32】基于HAL库的中断详细学习

    目录 1.中断概述 1.1中断相关概念 1.2 STM32中断系统 2 .HAL库的中断处理 2.1 HAL 库的中断封装 2.2 外部中断处理流程 3.外部中断的HAL库定义 3.1. 外部中断的数 ...

  4. stm32外部中断问题(每次stm32进行系统复位按键控制NRST=0,程序立马进入中断服务函数)

    rf射频数据收发芯片的一个数据接收指示引脚连接stm32的一个gpio口,设置为中断口.当rf接收到数据的时候,数据接收指示引脚由高电平变为低电平,所以中断配置里面配置的是IPU,下降沿触发.系统复位 ...

  5. STM32的:外部中断线EXTIN和外部中断向量EXTIN_IRQn和中断服务程序入口EXTIN_IRQHandler详解

    一:硬件情况:采用PA11管脚 需要明确的是,PxN管脚共用外部中断线EXTIN和外部中断向量EXTIN_IRQn和中断服务程序入口EXTIN_IRQHandler,但是需要注意的是[9...5]共用 ...

  6. 【STM32】外部中断实验代码详解

    文章目录 main.c exit.c exit.h STM32 的每个 IO 都可以作为外部 中断的中断输入口,这点也是 STM32 的强大之处. STM32F103 的 19 个外部中断为: 线 0 ...

  7. 【STM32】外部中断

    00. 目录 文章目录 00. 目录 01. 外部中断简介 02. 外部中断配置 03. 外部中断步骤 04. 硬件设计 05. 程序示例一 06. 程序示例二 07. 附录 08. 声明 01. 外 ...

  8. STM32 EXTI外部中断及NVIC的抢占优先级和响应优先级解释

    1.中断类型 从之前的串口实验可以看出,STM32总共分为内部中断和外部中断,内部和外部的配置差别不是很大,外部中断只是多了一步,需要通过 GPIO_EXTILineConfig(uint8_t GP ...

  9. 蓝桥杯嵌入式学习STM32之外部中断EXTI详解

    先说点题外话. !是取逻辑反的意思, ~是按位取反的意思 !0x01=0: ~0x01=1111 1110; 进入正题 基本概念 STM32的每个IO都可以作为外部中断输入. STM32的中断控制器支 ...

最新文章

  1. iis重启的几种方法
  2. java从1开始计时用线程_java – Python – 线程,计时或函数使用?
  3. 关于ORM和存储过程的一些看法
  4. 产品规格说明书怎么写_产品说明都不会写?亚马逊旺季请靠边站!
  5. 马克思知识点总结(一)
  6. 淘宝用户行为数据分析详解
  7. Win10家庭版安装软件时提示“为了对电脑进行保护,已经阻止此应用”
  8. LaTex在线编辑工具overleaf在英文模板中输入中文
  9. python中英文切换_python国际化(i18n)和中英文切换
  10. win系统服务器做加速,Win 2003操作系统25招加速大法(转)
  11. 一文详尽混淆矩阵、准确率、精确率、召回率、F1值、P-R 曲线、ROC 曲线、AUC 值、Micro-F1 和 Macro-F1
  12. mscbsc移动通信论坛_中国移动5G资费被确认,流量低至1毛/G, 联通电信又被动,网友:良心价...
  13. 使用javascript实现表单校验(聚焦onfocus()和离焦onblur()以及在指定位置输出innerHTML='')
  14. 使用OpenMP reduction子句求解二维数组的最小值和输出所在下标
  15. Python求最大公约数的五种常见方法
  16. 亚丁号自动阅读第一次更新
  17. 2022年小学语文句子专项练习大全
  18. Spring三级缓存源码
  19. 【数据挖掘·总复习】第三章-关联规则挖掘||Apriori||详细整理||知识点+例题||考点有
  20. vsftpd之主动模式 被动模式

热门文章

  1. JVM学习04:类的文件结构
  2. sqlyog软件的使用
  3. 教你如何用node.js开发微信公众号(一)
  4. viewport,html,body在pc和移动的差异
  5. 指针数组,数组指针,函数指针,main函数实质,二重指针,函数指针作为參数,泛型函数...
  6. jQuery获取Table某列的值
  7. Singleton设计模式(单实例)
  8. 代码编辑器Sublime Text 3 免费使用方法与简体中文汉化包下载
  9. php 设置curl不超时时间,curl命令的超时时间
  10. linux命令窗口颜色,如何修改ssh命令行下登录时的颜色