野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 26880|回复: 2

EXIT中断的疑问

[复制链接]
发表于 2021-7-2 15:47:19 | 显示全部楼层 |阅读模式
今天突然想起了一个问题,之前没有留意到的,EXIT中断/事件线分组的问题,我想知道一下当给我的多个中断信号都来自同一个 EXIT中断/事件线时该怎么处理,比如我有两个外部中断都同时处于EXTI9_5_IRQHandler 这个外部中断时,我们要怎么区分是哪个中断信号触发了中断的呢?是要自己去写一个判断的函数对中断源进行判断的吗?
回复

使用道具 举报

发表于 2021-7-5 11:16:05 | 显示全部楼层
需要自己写函数判断,标准库中EXTI相关.c  .h文件中只有对EXTI_PR寄存器状态检测的函数或者对EXTI_IMR和EXTI_PR检测的函数

1.同PORT不同EXIT_Line,也就是同端口不同引脚
a).通过标准库中exti相关文件提供的函数FlagStatus EXTI_GetFlagStatus(uint32_t EXTI_Line)对每个中断线进行状态检测, 就是对EXTI_PR寄存器进行操作
b).由中文参考手册第8.1.7小结的一句话【出现在I/O脚上的数据在每个APB2时钟被采样到输入数据寄存器】,可以得知,读取对应端口的GPIO_IDR寄存器的值
    对相应的引脚的位进行判断。
2.不同PORT同EXIT_Line
   对不的GPIO进行判断
3.不同PORT不同EXIT_Line
  编不下去了
回复 支持 反对

使用道具 举报

发表于 2021-7-5 13:58:50 | 显示全部楼层
是的,对于共用一个外部中断处理函数的,只能是在函数里判断具体的外部中断来源
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-24 05:36 , Processed in 0.073049 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表