第八章 外部中断

发布者:Turquoise最新更新时间:2024-03-18 来源: elecfans关键字:外部中断  STM32  寄存器 手机看文章 扫描二维码
随时随地手机看文章

第一节原理解读

打算写一下中断,又忍不住想说一下中断的概念,去书上翻一翻,或者自己在搜索引擎上搜一下,都可以找到一大堆,包括本文写的这个外部中断也不例外。如果要写光是中断就可以单独写一篇了,所以本文直入主题,对于STM32的外部中断进行详细的剖析。下图来自《STM32参考手册》,从整个架构图可以知道,外部中断的功能可以配置六个寄存器

5fa7a538-7d32-11ec-8beb-dac502259ad0.png?imageView2/2/w/1000

GPIO的映射关系图如下所示:5fbd3556-7d32-11ec-8beb-dac502259ad0.png?imageView2/2/w/1000第二节配置环境1,打开STM32CubeMX并选择芯片,下载器配置如下图。

5fce18f8-7d32-11ec-8beb-dac502259ad0.png?imageView2/2/w/1000

2,选择按键的引脚,配置成外部中断。如下图:

5fe83cd8-7d32-11ec-8beb-dac502259ad0.png?imageView2/2/w/1000

3,配置PC15引脚(也就是开发板上LD5的引脚)为输出模式。

5ffae388-7d32-11ec-8beb-dac502259ad0.png?imageView2/2/w/10004,选中GPIO,选择PC14,并且将GPIO的模式配置为外部中断下降沿有效。如下图:

60115848-7d32-11ec-8beb-dac502259ad0.png?imageView2/2/w/1000

5,使能中断。如下图。

60269e92-7d32-11ec-8beb-dac502259ad0.png?imageView2/2/w/1000

6,设置时钟树,项目路径,项目名称等等信息将不再阐述。配置完后生成项目即可。

第三节编写代码

1,大家先看看stm32l0xx_it.c的这个函数,这个是一个中断函数,中断服务函数里面就调用了GPIO外部中断处理函数HAL_GPIO_EXTI_IRQHandler(),参数为GPIO_PIN_14,即EXTI14中断。

6037b1d2-7d32-11ec-8beb-dac502259ad0.png?imageView2/2/w/1000

2,详细看看这个函数,GPIO外部中断处理函数主要就是清除中断标识位,然后调用中断回调函数HAL_GPIO_EXTI_Callback()。我们只需重构中断回调函数,在函数里面添加我们的应用代码即可。

604dc3b4-7d32-11ec-8beb-dac502259ad0.png?imageView2/2/w/1000

3,于是,在main.c中添加回调函数,如下:

605fb13c-7d32-11ec-8beb-dac502259ad0.png?imageView2/2/w/1000

4,配置下载器等就不再重复阐述了。

第四节 实验现象

实验注意事项:

1,程序语句需要位于程序的BEGIN与END之间。

2,利用USB线将电脑USB口与开发板USB1口连接。

3,CN4所有拨码开关必须选择ON DP档,否则无法下载程序。

实验现象:

LD1,LD4常亮。LD5上电长量,按下USER按键,LD5翻转。


关键字:外部中断  STM32  寄存器 引用地址:第八章 外部中断

上一篇:STM32进入和退出睡眠模式
下一篇:机智云设备移植RT-Thread

推荐阅读最新更新时间:2026-03-17 20:28

【stm32f103】stm32 外部中断寄存器版)
中断分类 STM32的EXTI控制器支持19 个外部中断/ 事件请求。每个中断设有状态位,每个中断/ 事件都有独立的触发和屏蔽设置。 STM32的19个外部中断对应着19路中断线,分别是EXTI_Line0-EXTI_Line18: 线0~15:对应外部 IO口的输入中断。 线16:连接到 PVD 输出。 线17:连接到 RTC 闹钟事件。 线18:连接到 USB 唤醒事件。 触发方式:STM32 的外部中断是通过边沿来触发的,不支持电平触发。 外部中断分组:STM32 的每一个GP
[单片机]
【stm32f103】<font color='red'>stm32</font> <font color='red'>外部中断</font>(<font color='red'>寄存器</font>版)
stm32f407之EXTI(操作寄存器
六、EXTI 外部中断/事件控制器包括用于生成高达23个事件/中断的请求。每条中断线可独立配置选择类型(响应或挂起)和相应的触发事件(上升或下降或两者)。每一中断线可以独立屏蔽。有一个挂起寄存器维持中断线的状态请求。 EXTI线0~15连接到PX0~15(可编程配置) EXTI线16连接到PVD的输出事件 EXTI线17连接到RTC报警事件 EXTI线18连接的USB OTG FS唤醒事件 EXTI线19连接到以太网唤醒事件 EXTI线20连接的USB OTG HS(在FS配置)唤醒事件 EXTI线21连接到RTC的篡改和TimeStamp事件 EXTI线22连接到RTC唤醒事件 设置步骤: 1.
[单片机]
IAR+STM8——EXTI外部中断控制寄存器
这块三合一的开发板上有且只有一个按键,没办法,就拿这唯一的按键来用吧。吸取前面UART3的教训,先看开发板的原理图吧。这个按键被接到了STM8S207SB的PD7上,已做了上拉处理。为了简单明了,还是点LED1吧。按一下LED1亮,再按一下LED1灭。好了,写程序吧。 #i nclude iostm8s207sb.h #define LED1_FLASH PD_ODR_ODR3 = !PD_ODR_ODR3 // 开发板上的LED1接在PD3上 void GPIO_init(void) { PD_DDR = 0x08; // 配置PD端口的方向寄存器PD3输出 PD_CR1 = 0x08; // 设置PD3为推挽输出 PD_C
[单片机]
STM8L外部中断为何死循环 寄存器操作
STM8L 系列单片机是 ST公司推出的低功耗单片机,与STM8S系列相比功耗降低了很多,但内部结构也删减了很多,使用时一定要仔细阅读手册。 这是第一次使用STM8,实现功能不是很复杂就没想研究库函数,准备直接控制寄存器操作,没想到本人 因为中断问题纠结了大半天。 在外部中断中这一点很不同, STM8S自动清除外部中断,而STM8L是需要软件清除, 清除标志位的寄存器根据设置而不同,下面有说明。 下面以STM8L外部中断 PB1为例 说明外部中断 寄存器操作 设置外部中断有下面几步: 第一步、设置IO口为中断输入 通过设置 (PB_DDR |= 0X00; PB_CR1 |= 0X02; PB_CR2 |= 0X02;)
[单片机]
STM8L<font color='red'>外部中断</font>为何死循环 <font color='red'>寄存器</font>操作
ARM外部中断控制寄存器EXTINTn设置方法
这个是设置EINT0~EINT23的触发方式的 EXTINT :设置24个外部中断源的中断信号的触发类型。 EXTINT0:设置EINT0~EINT7的中断触发类型。 bit0~bit2:设置EINT0的中断触发类型。bit3不用 bit4~bit6:设置EINT1的中断触发类型。bit7不用 bit8~bit10:设置EINT2的中断触发类型。bit11不用,依次往下推就行了 bit28~bit30:设置EINT7的中断触发类型。bit31不用 Setting the signaling method of the EINT0: 000=低电平(Low level) 001=高电平(H
[单片机]
DM642和CPLD外部中断寄存器式键盘设计
摘要:介绍了一种采用DM642和CPLD相配合的扩展键盘方法。CPLD管理键盘电路中的芯片逻辑,DM642的外部中断监控按键的状态。简单阐述了键盘的分类,给出系统的硬件电路原理图,在CCS软件中调试程序方法。仿真结果表明,设计可行,达到了预期效果。 关键词:键盘;DM642;CPLD;人机交互 引言 键盘是人机交互模块中必备的输入部分,在目前的嵌入式系统人机接口中通常采用专用的键盘处理芯片ZLG7290设计键盘。由于ZLG7290是一种64位LED显示和64个按键的键盘管理器件,会造成部分LED显示和按键空闲浪费并占用硬件资源比较多,使成本增加。随着DM642性价比的提高,它在图像处理系统和数字媒体系统中的应用越来越广泛,
[嵌入式]
DM642和CPLD<font color='red'>外部中断</font>的<font color='red'>寄存器</font>式键盘设计
STM32外部中断原理与配置
STM32-外部中断原理与配置 IO口外部中断原理概述 STM32控制器支持的外部中断/事件请求 中断线 M3 M4 M7 EXTI线0~15:对应外部IO口的输入中断。 √ √ √ EXTI线16:连接到PVD输出。 √ √ √ EXTI线17:连接到RTC闹钟事件。 √ √ √ EXTI线18:连接到USB OTG FS唤醒事件。 √ √ √ EXTI线19:连接到以太网唤醒事件。 √ √ EXTI线20:连接到USB OTG HS(在FS中配置)唤醒事件 √ √ EXTI线21:连接到RTC入侵和时间戳事件。 √ √ EXTI线22:连接到RTC唤醒事件。 √ √ EXSTI线23
[单片机]
04 STM32外部中断
1、综述   (1)STM32F407的每个IO口都可以作为外部中断的输入口。   (2)STM32F407的中断控制器支持22个外部中断/事件请求。这也就是说,一共有22根外部中断线(EXTI线)。而对于每个外部中断线,可以独立地配置触发方式(上升沿、下降沿、双边沿触发)、触发/屏蔽设置、发送的状态位。   (3)这22根EXTI线中,有16根(0~15),是对应着外部IO口的输入中断。但是,STM32F407拥有上百个IO口,而供IO口使用的中断线只有16根。那么,中断线如何与IO口对应呢?   (4)STM32做了这样的设计:同一组的IO最多有16个,比如GPIOA.0~GPIOA.15、GPIOB.0~GPIOB.15等等
[单片机]
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved