外部中断问题

关注

单片机 单片机综合应用 caa9036c66049ace    2018-10-11   |   浏览量 136  
单片机外部中断程序如何设置,要加一个标志位,标志位为一进入中断吗?

最佳答案

  • Spirit 发表于2018-10-11

    通常外部中断都与IO口有关,也有例外。比如STM32的RTC(实时时钟)相关的中断、USB相关的中断等。按下不提

    因为题主没有提到具体的MCU型号,我也只泛泛而谈

    首先是使中断有效。不管外部中断还是内部中断都 一样。有一个或多个中断使能寄存器,不同的中断源对应不同的位(要查MCU文档)。

    与IO相关的外部中断,进入中断的前提条件是IO口电平有变化。

    比如51单片机,只有IO口下降沿(从高变为低)才会触发中断。 AVR 和ARM可以设置上升沿中断或下降沿中断。


    总结:几乎所有的中断,进入中断的条件都不是程序员去置标志位触发的。都是某个特定条件达到时才会进入。 

    举报 评论 0

其他答案

  • 张峰 发表于 2018-10-12 云汉达人

    标志位是状态寄存器里面的位,有中断的时候自动置位,硬件自动完成,如果开启了终端,并且没有更高优先级中断的话,这个中断就执行了,中断标志呀什么的都处理完了,就执行中断回调函数,就是自己的中断服务代码了。

    如果是用 hal 库的话,只要自己实现 callback 函数,就可以执行了。

    回答点赞:   一指破宫 Wyatt0007 yhj416606438 举报 评论 3

  • 代人凌峰 发表于 2018-10-11

    不是要加标志位,而是中断来临之后会程序指针指向中断函数,运行中断函数

    回答点赞:   yhj416606438 举报 评论 1

  • wo4fisher 发表于 2018-10-12

    一般单片机都是不需要的因为最基本的51,都有两个外部中断可以使用。设置好外部中断模式,然后开启总中断、外部中断,写好中断服务函数,还有清中断标志,stm32的话注意开启相关时钟。基本就这些了。

    回答点赞:   yhj416606438 举报 评论 1

  • chenlei1910 发表于 2018-10-11

    看什么单片机,32只要配置好外部中断,一旦中断触发就会自动进入中断函数

    举报 评论 0

  • yhj416606438 发表于 2018-10-12

    51本来就有中断标志位的,可以判断标志位的

    举报 评论 0

  • Wyatt0007 发表于 2018-10-12

    51可以配置自身的寄存器来控制外部中断


    举报 评论 0

  • Timetotemp 发表于 2018-10-12

    外部中断触发了,标志位只是标志有中断发生,然后用来执行其他你想运行的程序

    举报 评论 0

  • 一指破宫 发表于 2018-10-12

    标志位是不需要加的, 如果用到寄存器中的标识, 接收到中断会自动触发的, 做好清除标志位,迎接下一次中断就好

    举报 评论 0

  • fighter-12315 发表于 2018-10-12

    不需要,只要配置好外部中断,声明注册回调函数,单片机上都是有外部中断的一些标志位的,接收到相应触发信号会自动置位,然后COU响应即可。就算不用硬件自动置位非要自己来查询的话也可以,也不需要自己声明标志位,因为单片机里有这个标志位

    举报 评论 0

  • @曲终人散@ 发表于 2018-10-12

    标志为1,同时对应的中断触发使能的同时才会触发中断

    举报 评论 0

  • 明有几时有 发表于 2018-10-12

    这个标志有寄存器中的标志,也可以自己设置一个标志的

    举报 评论 0

  • shakencity 发表于 2018-10-13

    是中断函数决定,不需要标志位吧,中断触发了进入函数即可

    举报 评论 0

  • oh_耗子 发表于 2018-10-13

    首先你说的是哪一种,要看芯片手册。以C51为例子是配置寄存器的,配置完打开,满足条件就自动进入了

    举报 评论 0

  • wanyanfei1984 发表于 2018-10-15

    对于STM来说不需要你说的标志位,而对于51来说有标志位的配置一说。

    具体参考设计说明书手册

    举报 评论 0

  • chen0000009 发表于 2018-10-20

    这个标志位是靠硬件来检测的,中断多是硬件行为,当开启了中断,一旦标志位被置位就产生一个中断,这个行为不是软件实现的

    举报 评论 0

  • Reuben 发表于 2018-10-23

    这个要检查你的硬件标志位,通过你的硬件标志位来判断中断的方式

    举报 评论 0

  • Harriet 发表于 2018-10-30

    这个由你的硬件标志来判断的,开启了中断后有硬件中断就会产生中断标志

    举报 评论 0

  • drepa 发表于 2018-10-31

    外部中断需要配置gpio复用和中断标志位,响应了外部中断之后要把标志位清零。

    举报 评论 0

  • 我对面的武器 发表于 2018-11-06

    你要设置中断使能寄存器的 ,使能后,再设置GPIO口的功能,这样有中断时才会进中断函数

    举报 评论 0

  • 厉害企鹅 发表于 2018-11-06

    应该是进入中断后,才会有标志位的设置的

    举报 评论 0

我来回答

试用推荐

Beetle-ESP32控制器

产品总数:5个  申请人数:7

距离结束时间:

推荐达人 更多>

  • 王奕 向ta提问

    Eagleson

    在学习FPGA的道路上 我们一起成长吧!

    在行: FPGA/CPLD

  • 靳飞 向ta提问

    汉云

    在路上的Linuxer

    在行: DSP技术 Linux 系统 STM32讨论区 PIC单片机 PCB技术/设计/定制

  • Angel Cherry 向ta提问

    MOP

    用愛和熱忱寫好每一行Code

    在行: FPGA/CPLD Linux 系统 热门单片机

  • 徐珂靖 向ta提问

    xukejing

    Linux系统 、热门开发板

    在行: Linux 系统

  • 袁建明 向ta提问

    河北博联科技有限公司 研发部经理

    日知其所亡

    在行: Linux 系统 灵动微MCU 电源技术

完成答题
赶快去开启您的宝箱吧
×
恭喜您成功领取锦鲤卡
幸运锦鲤将在12月28日晚8点的直播中公布
敬请期待...
确定
邀请答题送话费,邀的多赚的多