历史上的今天
今天是:2025年12月07日(星期日)
2022年12月07日 | STM32单片机外部中断配置讲解
2022-12-07 来源:zhihu
01
单片机外部中断简介
所谓外部中断,就是通过外部信号所引起的中断,如单片机引脚上的电平变化(高电平、低电平)、边沿变化(上升沿、下降沿)等。51单片机有5个中断源,其中有两个是外部中断,分别为INT0和INT1,INT0被分配在P3.2引脚,INT1被分配在P3.2引脚,也即是说如果使用51单片机的外部中断0,则必须将信号接在P3.2上,否则无效。
02
举例说明什么是中断
单片机在执行程序时有两种方式:
查询方式
中断方式
所谓查询方式就是单片机一遍一遍的扫描,查看所监视的目标有没有发生变化,是一种主动式的监视方法,用一个成语可以很客观的描述:守株待兔。
所谓中断方式就是单片机不主动去监视目标,而是目标主动通知单片机状态发生了变化,是一种被动式的监视方法,也可以用一个成语来形容:不速之客。
有一所学校的院墙破了一个洞,为了防止学生半夜跑出去上网,在墙修好之前,学校安排保安每天夜里守在那个洞的旁边监视,这就是守株待兔。到了半夜保安很困想睡觉但是又害怕扣工资,怎么办?这个保安很聪明就在洞口拉了一条绳子把绳子的另一端绑在自己的手腕上,只要有人想出去就会绊倒绳子从而惊醒睡觉的保安,这就是不速之客。这样既不影响保安睡觉,又能捉住半夜出去上网的学生,还能避免保安被扣工资,由此可见通过使用中断大大节省了保安的精力。这就是使用中断的好处。
03
STM32单片机外部中断简介
STM32单片机的每一个GPIO都可以被设置为外部中断输入,根据引脚序号的不同可以将外部中断分为不同的组,分别为PA0-PG0为EXti0组,以此类推,PA15-PG15为EXTI15组,共16组,并且每一组中同一个时刻只能有一个中断源工作,所以,STM32单片机最多允许同时有16个外部中断。外部中断的分配方式如下表所示:
STM32单片机的外部中断触发方式为边沿触发,即上升沿触发和下降沿触发。
04
STM32外部中断配置步骤
STM32单片机在配置外部中断时可以按照以下步骤来操作:
1.初始化GPIO为输入;
2.开启复用时钟,设置映射关系;
3.设置触发条件;
4.分配中断向量控制器,并使能;
5.编写中断服务函数;
05
STM32外部中断相关的寄存器
1.初始化GPIO时要用到如下寄存器:
APB2ENR:开启GPIO时钟和复用时钟;
CRH:端口配置高寄存器;
CRL:端口配置低寄存器;
EXTICR[0]-EXTICR[3]:外部中断配置寄存器
IMR:中断屏蔽寄存器;
EMR:事件屏蔽寄存器;
FTSR:下降沿触发选择寄存器;
RTSR:上升沿触发选择寄存器
ISER[0]-ISER[3]:NVIC中断向量控制器;
史海拾趣
|
哪位高手搞过s3c6410的DVFS(动态电压频率调整)功能吗?在三星的文档里,关于DVFS的介绍很少,只要set BSP_USEDVS=1 就可以使用些功能了好像,但问题是,它体现在哪里?搜索BSP_USEDVS,没找到相关的代码, 有研究过这个功能的前辈吗?大家讨论一 ...… 查看全部问答> |
|
#include \"stdio.h\" #include \"ugl/ugl.h\" UGL_LOCAL struct_colorStruct/*这是定义一个色表,就是这部分编译不过去*/ { UGL_ARGB rgbColor; UGL_COLOR uglColor; } colorTable[]= { {UGL_MAKE_ARGB(0xff,0,0,0),0}, {UGL_MAKE_A ...… 查看全部问答> |
|
关于规整贴 上周,琳子姐跟我谈了谈目前DIY的进展和一些组织的问题。 主要是说到现在大家是按照原计划,分任务独立去做,有时候我们单独发贴,显得有点乱 ...… 查看全部问答> |
|
Lattice坚定发展低功耗低价格FPGA不动摇 Lattice也是大家熟悉的FGPA生产厂商,有自己的特点~希望更多的人能认识到 … 查看全部问答> |
|
关于Stellaris系列UART的FIFO新认识,经典!(ZZ 21ic) 【经典提问】 有没有办法去掉UART的FIFO,或者怎样才能实现每收发一个字符就中断一次呢?Stellaris系列ARM的UART好像无法做到这一点,存在缺陷!【精妙解答】 误解了,根本就不是缺陷, ...… 查看全部问答> |
|
关于NORFLASH、NANDFLASH、SDRAM大小的选择 大侠们好:我看到一个系统有NORFlash 8MB、NANDFlash 32MB、DDR2 128MB、 我想问下,他们分别用来存储什么东西,这些容量的选择是依据什么呢?DDR2是不是用来存储临时的数据?那两个flash呢? 菜鸟一个,求助~~~… 查看全部问答> |




