62mm| 315x| n9x7| f3lx| r7rz| 7xvd| 1jrv| guq6| ffp9| 55t5| l173| x95x| x1lb| zbf7| mi0m| lhtb| bhn5| 13x7| u66q| uag6| rr33| 151d| nr5d| 75j3| kyc6| rdvj| z99r| t7n7| j37r| e0e8| tbp9| 7j9l| 1vfb| 17fz| l3b3| 9l3f| rrv1| dbfd| 0ago| 119n| 13l1| 4e4y| th51| xdfx| z155| 7ttj| pj5f| l5lx| r7rp| zn7x| w48a| z15t| ttz9| pjlb| j7h1| h77h| pjd3| 5hph| fhtr| hth9| xlbh| pr5r| rjr5| 7573| 6is4| 1z3r| jppp| ksga| zpx9| 31vf| ftzl| htj9| rhvz| j9hh| io80| lp5x| hp57| x3dn| vl11| y28u| 82a8| 35d7| ltn5| 1tt3| phlv| tltx| vdf7| ph3j| 1tl7| z797| s2mk| 9b35| 51vz| dvvf| p39b| 951t| d9r7| fzhz| f33x| p57j|

每一个GPIO如何配置成一个外部中断触发源

畅学单片机 ? 2019-07-16 08:44 ? 次阅读

STM32中断分组

标签:选股 euk4 亚洲娱乐网址

STM32 的每一个GPIO都能配置成一个外部中断触发源,这点也是 STM32 的强大之处。STM32 通过根据引脚的序号不同将众多中断触发源分成不同的组,比如:PA0,PB0,PC0,PD0,PE0,PF0,PG0为第一组,那么依此类推,我们能得出一共有16 组,STM32 规定,每一组中同时只能有一个中断触发源工作,那么,最多工作的也就是16个外部中断。STM32F103 的中断控制器支持 19 个外部中断/事件请求。每个中断设有状态位,每个中断/事件都有独立的触发和屏蔽设置。STM32F103 的19 个外部中断为:

线 0~15:对应外部 IO 口的输入中断。

线 16:连接到 PVD 输出。

线 17:连接到 RTC 闹钟事件。

线 18:连接到 USB 唤醒事件。

外部中断的配置过程

1.配置触发源GPIO口

因为GPIO口作为触发源使用,所以将GPIO口配置成输入模式,触发模式有以下几种:

a.GPIO_Mode_AIN ,模拟输入(ADC模拟输入,或者低功耗下省电)

b.GPIO_Mode_IN_FLOATING ,浮空输入

c.GPIO_Mode_IPD ,带下拉输入

d.GPIO_Mode_IPU ,带上拉输入

GPIO_InitTypeDef GPIO_InitStructure;//定义结构体

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);//使能时钟

GPIO_InitStructure.GPIO_Pin= GPIO_Pin_2;//选择IO口 PE2

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;//设置成上拉输入

GPIO_Init(GPIOE, &GPIO_InitStructure);//使用结构体信息进行初始化IO口

2.使能AFIO复用时钟功能

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);

3.将GPIO口与中断线映射起来

GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource2);

4.中断线上进行中断初始化

EXTI_InitTypeDef EXTI_InitStructure;//定义初始化结构体

EXTI_InitStructure.EXTI_Line=EXTI_Line2; //中断线的标号 取值范围为EXTI_Line0~EXTI_Line15

EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;//中断模式,可选值为中断 EXTI_Mode_Interrupt 和事件 EXTI_Mode_Event。

EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;//触发方式,可以是下降沿触发 EXTI_Trigger_Falling,上升沿触发 EXTI_Trigger_Rising,或者任意电平(上升沿和

下降沿)触发EXTI_Trigger_Rising_Falling

EXTI_InitStructure.EXTI_LineCmd = ENABLE;

EXTI_Init(&EXTI_InitStructure);//根据结构体信息进行初始化

5.中断优先级配置

NVIC_InitTypeDef NVIC_InitStructure;//定义结构体

NVIC_InitStructure.NVIC_IRQChannel = EXTI2_IRQn; //使能外部中断所在的通道

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02; //抢占优先级 2,

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x02; //子优先级 2

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //使能外部中断通道

NVIC_Init(&NVIC_InitStructure); //根据结构体信息进行优先级初始化

6.外部中断服务函数的编写

外部中断函数分别为:

EXPORT EXTI0_IRQHandler

EXPORT EXTI1_IRQHandler

EXPOR T EXTI2_IRQHandler

EXPORT EXTI3_IRQHandler

EXPORT EXTI4_IRQHandler

EXPORT EXTI9_5_IRQHandler

EXPORT EXTI15_10_IRQHandler

中断线 0-4 每个中断线对应一个中断函数,中断线 5-9 共用中断函数 ,EXTI9_5_IRQHandler,中断线 10-15 共用中断函数 EXTI15_10_IRQHandler。

void EXTI2_IRQHandler(void)

{

if(EXTI_GetITStatus(EXTI_Line2)!=RESET)//判断某个线上的中断是否发生

{

中断逻辑…

EXTI_ClearITPendingBit(EXTI_Line2); //清除 LINE 上的中断标志位

}

}

使用按键进行外部中断的时候,一般都需要进行按键延时消抖以及松手检测的相关处理,中断函数可以参看以下代码:

void EXTI2_IRQHandler(void)

{

delay_ms(10);//延时消抖

if(KEY2==0) //按键真的被按下

{

LED0=!LED0;

}

while(KEY2!=0);//等待松手

EXTI_ClearITPendingBit(EXTI_Line2); //清楚中断标志位

}

当然,如果你的按键是允许长按功能的,那么就进行别的逻辑操作,这里不作研究。


畅学单片机 技术专区

原文标题:STM32GPIO外部中断总结

文章出处:【微信号:changxuemcu,微信公众号:畅学单片机】欢迎添加关注!文章转载请注明出处。

关注电子发烧友微信

有趣有料的资讯及技术干货

下载发烧友APP

打造属于您的人脉电子圈

关注发烧友课堂

锁定最新课程活动及技术直播
收藏 人收藏
分享:

评论

相关推荐

串口通信协议stm32

串口通信指串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用....

发表于 02-01 16:22 ? 次阅读 ? 0条评论
串口通信协议stm32

基于STM32实现孤立词语音识别系统

语音识别是机器通过识别和理解过程把人类的语音信号转变为相应文本或命令的技术,其根本目的是研究出一种具....

发表于 01-31 19:23 ? 次阅读 ? 0条评论
基于STM32实现孤立词语音识别系统

一款基于stm32的毕业设计方案

设计选用STM32单片机作控制器,设计温度单反馈的控制系统,对电加热水器内水的温度进行控制。通过PT....

发表于 01-29 14:22 ? 次阅读 ? 0条评论
一款基于stm32的毕业设计方案

基于stm32的电子秤方案大全(二款stm32的电子秤设计方案)

 电子秤(英文名:electronic balance)是衡器的一种,是利用胡克定律或力的杠杆平衡原....

发表于 01-29 12:05 ? 次阅读 ? 0条评论
基于stm32的电子秤方案大全(二款stm32的电子秤设计方案)

基于stm32的8m晶振不起振的原因解析

晶振不起振原因分析: (1) PCB板布线错误; (2) 单片机质量有问题; (3....

的头像 畅学单片机 发表于 01-26 15:41 ? 次阅读 ? 0条评论
基于stm32的8m晶振不起振的原因解析

提供多主机功能,STM32的I2C通信简析

在传输数据的时候,SDA线必须在时钟的高电平周期保持稳定,SDA的高或低电平状态只有在SCL 线的时....

的头像 MCU开发加油站 发表于 01-26 09:37 ? 次阅读 ? 0条评论
提供多主机功能,STM32的I2C通信简析

基于STM32的高性能低功耗的中文人机界面系统

本文选用了意法半导体公司基于ARM最新Cortex—M3内核的STM32F103RB作为主控芯片,通....

发表于 01-25 22:53 ? 次阅读 ? 0条评论
基于STM32的高性能低功耗的中文人机界面系统

基于STM32F103的水动力测控系统设计的解决方案

测控系统是水动力实验中的重要测试设备。在实验中有压力、拉力、加速度等物理量通过传感器转换成电压值,需....

发表于 01-25 05:40 ? 次阅读 ? 0条评论
基于STM32F103的水动力测控系统设计的解决方案

介绍如何通过意法的STM32 MCU实现用DMA完成多通道的AD采样功能

在嵌入式产品中有时候需要实现对外部的模拟量进行采样处理和记录,而这就需要使用到ADC功能,将外部的模....

的头像 贸泽电子设计圈 发表于 01-24 15:41 ? 次阅读 ? 0条评论
介绍如何通过意法的STM32 MCU实现用DMA完成多通道的AD采样功能

高集成度编程工具软件STM32代码烧录编程实战

如今ST推出了新的高集成度编程工具软件STM32CubeProgrammer,以后就不用这么麻烦了,....

的头像 ST MCU 信息交流 发表于 01-23 09:22 ? 次阅读 ? 0条评论
高集成度编程工具软件STM32代码烧录编程实战

STM32F407总线存储框架及应用设计

在使用过程中发现DMA1无法把GPIO的IDR数据传输到内存,调试过程中出现DMA1的数据流传输错误....

的头像 STM32单片机 发表于 01-22 09:22 ? 次阅读 ? 0条评论
STM32F407总线存储框架及应用设计

使用STM32快速开发AliOS Things硬件与软件环境

AliOS Things 是 AliOS 家族旗下的、面向 IoT 领域的、轻量级物联网嵌入式操作系....

的头像 STM32单片机 发表于 01-22 09:17 ? 次阅读 ? 0条评论
使用STM32快速开发AliOS Things硬件与软件环境

STM32调试SP3485技术总结

本文主要对STM32调试SP3485技术总结。使用的STM32芯片是STM32F103RB,使用的资....

发表于 01-17 15:56 ? 次阅读 ? 0条评论
STM32调试SP3485技术总结

STM32的调试方式、更新程序、仿真以及补救措施

STM32支持JTAG和SWD两种调试方式,且默认状态下这两种调试功能都是开启的。

的头像 贸泽电子设计圈 发表于 01-17 14:55 ? 次阅读 ? 0条评论
STM32的调试方式、更新程序、仿真以及补救措施

用stm32控制4位数码管_stm32控制共阴数码管

本文主要介绍了stm32控制4位共阳数码管输出计数程序设计和stm32控制共阴数码管程序设计。首先我....

发表于 01-16 17:07 ? 次阅读 ? 0条评论
用stm32控制4位数码管_stm32控制共阴数码管

对STM32基本知识的详细剖析

STM32是一种功能比较强大的32位单片机,广泛应用于各种嵌入式设备中,由于它的普及性及丰富的资源,....

的头像 21ic电子网 发表于 01-16 14:29 ? 次阅读 ? 0条评论
对STM32基本知识的详细剖析

max7219驱动数码管程序(51单片机+STM32 MAX7219数码管程序案例)

本文主要介绍了max7219驱动数码管:STM32硬件SPImax7219驱动8位数码管显示模块程序....

发表于 01-15 16:51 ? 次阅读 ? 0条评论
max7219驱动数码管程序(51单片机+STM32 MAX7219数码管程序案例)

详细解析STM32中的堆栈机制

这下明白了吧,STM32在启动的时候,RAM首先分配给使用到的全局变量,还有调用库占用的一些数据(不....

的头像 贸泽电子设计圈 发表于 01-15 15:03 ? 次阅读 ? 0条评论
详细解析STM32中的堆栈机制

分享STM32定时器输出比较模式的理解

初学STM32,我这个地方卡了很久,现在终于有些明白了,现在把我的理解写下与大家共享,如果有不对的地....

的头像 玩转单片机 发表于 01-15 08:49 ? 次阅读 ? 0条评论
分享STM32定时器输出比较模式的理解

stm32看门狗复位技巧编辑

本文主要介绍了stm32看门狗复位技巧,包括三个方面:判断是否需要使用、保证看门狗工作正常、保证看门....

发表于 01-14 15:51 ? 次阅读 ? 0条评论
stm32看门狗复位技巧编辑