历史上的今天

今天是:2024年08月27日(星期二)

正在发生

2018年08月27日 | STM32外部中断处理流程及注意事项

发布者:钱币之歌 来源: eefocus关键字:STM32  外部中断  处理流程  注意事项 手机看文章 扫描二维码
随时随地手机看文章

STM32的外部中断是以组为单位,例如PA0、PB0、PC0、PD0、PE0、PF0、PG0共用外部中断0,我们再使用时从中选择一个座位外部中断0即可,其他中断类推。

外部中断包括EXTI0、EXTI1、EXTI2、EXTI3、EXTI4、EXTI9_5、EXTI15_10,Pin0--Pin4有各自独立的中断,

Pin5--Pin9共用一个中断,Pin10--Pin15共用一个中断。

中断号Pin脚
EXTI0Pin0
EXTI1Pin1
EXTI2Pin2
EXTI3Pin3
EXTI4Pin4
EXTI9_5Pin5--Pin9
EXTI15_10Pin10--Pin15


外部中断设置流程:

1 设置IO口

   将IO口设置为输入状态。

GPIO_InitTypeDef GPIO_KEY;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOE, ENABLE); //时钟使能

GPIO_KEY.GPIO_Pin = GPIO_Pin_9;
GPIO_KEY.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_KEY.GPIO_Mode = GPIO_Mode_IN_FLOATING; //浮空输入
GPIO_Init(GPIOB, &GPIO_KEY);

2 设置中断优先级

NVIC_InitTypeDef NVIC_InitStructure; 

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); //设置组优先级 
NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQChannel; //设置通道中断号
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; //抢占优先级
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; //从优先级
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //通道使能
NVIC_Init(&NVIC_InitStructure);

3 设置中断源

EXTI_InitTypeDef EXTI_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); //外部中断必须开启AFIO时钟

EXTI_ClearITPendingBit(EXTI_Line9); //清除EXTI线路挂起位 PB9
GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource9); //选择PB9作为EXTI线路
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; //中断请求
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; //下降沿触发
EXTI_InitStructure.EXTI_Line = EXTI_Line9 ; //PB9为中断源
EXTI_InitStructure.EXTI_LineCmd = ENABLE; //使能该中断源
EXTI_Init(&EXTI_InitStructure);

注:设置外部中断源时必须是来了个AFIO功能,否则中断得不到响应。

4 中断响应函数

void IRQ_EXTI9(void)
{
Pow_State += 1;
if(Pow_State%2 == 0)
{
Pow_State = 0;
}
}

5 中断函数

void EXTI9_5_IRQHandler(void)
{
delay_ms(10);
if ( EXTI_GetITStatus(EXTI_Line9) != RESET ) 
{
NVIC_SETPRIMASK(); //关闭总中断 
EXTI_ClearITPendingBit(EXTI_Line9);
IRQ_EXTI9();
NVIC_RESETPRIMASK();//开放总中断

}

6 主函数

void Process_Key(void)

switch(Pow_State)
{
case 0:
LED_PWR_Off();
break;
case 1:
LED_PWR_On();
break;
default:
break;
}

}


关键字:STM32  外部中断  处理流程  注意事项 引用地址:STM32外部中断处理流程及注意事项

上一篇:STM32的AFIO口简介
下一篇:STM32端口复用和重映射(AFIO辅助功能时钟)

推荐阅读

更高密度的低功率SMPS设计需要越来越多的高压MOSFET器件。英飞凌科技股份公司推出CoolMOS™ P7系列的新成员950 V CoolMOS P7超结MOSFET器件。该器件甚至能达到最严格的设计要求:用于照明、智能电表、移动充电器、笔记本适配器、AUX电源和工业SMPS应用。这种全新半导体解决方案能实现出色的散热性能及能源效率,减少用料并降低总生产成本。 950 V Co...
经过近两年的实践,“硬科技”概念得到了许多城市的认可和实践。北京已成立“硬科技基金”;杭州将硬科技写入政府文件;成都要通过硬科技引领,加快向“新经济2.0版”发起冲击。 作为“硬科技”概念的首倡城市,我市的硬科技产业目前发展得如何呢?8月22日,记者采访了市科技局相关负责人,据介绍,我市硬科技产业发展良好,九大硬科技产业中,光电芯片(...
8月27日,在2020世界半导体大会第三届中国IC独角兽论坛上,2019年度中国IC独角兽评选结果发布,现场举办了颁奖仪式。京微齐力(北京)科技有限公司、上海安路信息科技有限公司、北京地平线机器人技术研发有限公司、深圳云天励飞技术有限公司、思特威(上海)电子科技有限公司、苏州纳芯微电子股份有限公司、成都锐成芯微科技股份有限公司等多家企业上榜。以下...
台积电联手索尼在日本合资厂据称最快将在今年成立,日本汽车零组件大厂Denso以及功率半导体大厂三菱电机有望加入。Denso目前正与丰田汽车合资设立芯片公司,以共同开发下一代汽车半导体。据日刊工业新闻周四(26日)报道,台积电预计将持有该合资厂50%的股权,其余则由索尼、Denso等日本投资者持有。根据此前报道,该合资厂计划总投资达1万亿日元,日本政...

史海拾趣

问答坊 | AI 解惑

PC式硬盘录像机死机全接触(二)

PC式硬盘录像机死机全接触 九、零部件选用不当造成死机 少数人在给顾客组装硬盘录像机时,使用质量低劣的主板、内存,有的甚至出售冒牌主板和旧的CPU、内存,这样就会使机器在运行时很不稳定,发生死机也就在所难免。内存容量越大越好,至少大于 ...…

查看全部问答∨

基于quartus2的STA(静态时序分析)

从一篇PPT里抽出的一部分,希望对大家有帮助…

查看全部问答∨

关于1602显示问题

先给我的代码, CW DATA 0F9FCH         ;写指令 CR DATA 0F9FEH         ;读状态 DIW DATA 0F9FDH         ;写数据 DIR DATA 0F9FFH    &nb ...…

查看全部问答∨

请问现在用的比较普遍的板载网口控制芯片型号?

请问哪位知道现在用的比较普遍的板载网口控制芯片型号?开发比较方便的?   想用在局部以太网数据传输的,利用以太网接口实现主机和系统之间的数据传输 [ 本帖最后由 open82977352 于 2011-3-7 11:42 编辑 ]…

查看全部问答∨

请教IAR下面调STM32,下面这个关于CSTACK的错误改如何解决?谢谢!

Wed Sep 23 10:46:56 2009: The stack \'CSTACK\' is filled to 100% (2048 bytes used out of 2048). The warning threshold is set to 90.%. BOOT选的是00.网上找了很多资料,还是清楚如何解决.板子是自己做的.调试工具用的STLINK…

查看全部问答∨

如何查看自己回复的话题?

请教大家:论坛有米有查看“我的回复”的功能? 找了很久都没找到哦………

查看全部问答∨

请教:在掌握51的基础上,进一步提高是学习ARM呢还是DSP好点呢?学习他们有什么分别?

我想请教大家,现在我对51有一定掌握了,想进一步提高一下,DSP和ARM学习那个好点呢?他们的应用前景怎样?学习起来难易程度又如何?我本人偏向DSP,DSP算法是 精髓,有的研究。这只是我个人看法,不知具体他们的情况如何,还望大家不吝赐教。…

查看全部问答∨

新手求教。除了传统的PWM输入捕获方式测PWM周期和占空比,还有其他方法可以实现么?

例如,信号输入Pin口外部中断exit(双边沿),开定时器TIM3,不同边沿中断时,记下不同的TIM3->cnt的值。 不知道这样可以否? 因为遇到了非TIMx输入通道的信号测频率和占空比问题,所以想到了这个方法。 请教下各位大大! 还有其他更好的方法 ...…

查看全部问答∨

M4的定时器捕获计时和定时器捕获计数代码怎么写?求大神指点

M4的定时器捕获计时和定时器捕获计数代码怎么写?求大神指点…

查看全部问答∨

哪个大神做E题啊,交流一下啊!!!!!!!!!!

本帖最后由 paulhyde 于 2014-9-15 03:06 编辑 谢谢了  …

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

更多每日新闻

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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