历史上的今天
返回首页

历史上的今天

今天是:2025年01月15日(星期三)

正在发生

2019年01月15日 | STM32的EXTI小实验

2019-01-15 来源:eefocus

stm32并没有使用Cortex-M3的全部256个中断,只用了一部分(16个内核+68个外部中断)


中断线


       所有GPIO口的0号引脚对应EXTI0中断线,类似的PA1~PG1对应EXTI1中断线。


中断服务函数


       中断服务函数名必须与启动文件startup_stm32F10x_hd.s的中断向量表定义一致


       中断线0~4对应EXTI0_IRQHandler();EXTI1_IRQHandler();EXTI2_IRQHandler();EXTI3_IRQHandler();


       中断线5~9共用EXTI9_5_IRQHandler();


       中断线10~15共用EXTI15_10_IRQHandler();


使用方法:(当我按下按键PD3时,产生中断,灯亮灭10次)


一、 配置时钟


        打开复用时钟   RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);


二、配置GPIO


        输入中断的GPIO配置      

                                                    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;


三 、配置EXTI和NVIC结构体


  EXTI_InitTypeDef EXTI_InitStructure;

  NVIC_InitTypeDef NVIC_InitStructure; 


  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//优先级分组


  GPIO_EXTILineConfig(GPIO_PortSourceGPIOD,GPIO_PinSource3);//GPIOD脚3为输入中断线


  EXTI_InitStructure.EXTI_Line=EXTI_Line3;

  EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;

  EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;

  EXTI_InitStructure.EXTI_LineCmd=ENABLE;

  EXTI_Init(&EXTI_InitStructure);

  NVIC_InitStructure.NVIC_IRQChannel=EXTI3_IRQn;

  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0x02;

  NVIC_InitStructure.NVIC_IRQChannelSubPriority=0x03;

  NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;

  NVIC_Init(&NVIC_InitStructure);


四、对应中断函数


void EXTI3_IRQHandler(void)  

{

    if(EXTI_GetITStatus(EXTI_Line3) != RESET)//EXTI_Line3触发请求发生了吗

    {

        for(int i=10;i!=0;i--)

        {

           GPIO_ResetBits(GPIOF,GPIO_Pin_9);//亮灯

           Delay(0x1FFFFF);        

           GPIO_SetBits(GPIOF,GPIO_Pin_9);//灭灯

           Delay(0x1FFFFF);

        }

        EXTI_ClearITPendingBit(EXTI_Line3);//清除EXTI线路挂起位

    }

}


推荐阅读

史海拾趣

Frequency Management International公司的发展小趣事

作为一家有社会责任感的企业,FMI深知可持续发展和环保的重要性。公司积极响应国家环保政策,采用环保材料和生产工艺,减少对环境的影响。同时,FMI还致力于节能减排和资源循环利用等方面的研究和实践工作。这些努力不仅体现了FMI对环境保护的承诺和责任感,也为公司的长期发展奠定了坚实的基础。

综上所述,Frequency Management International公司凭借其创立与早期发展、技术创新与产品线拓展、市场拓展与国际化战略、质量管理与客户服务以及可持续发展与环保责任等方面的努力和发展历程,在电子行业中取得了显著的成就和地位。

广州基安彼(GMB)公司的发展小趣事

FMI深知技术创新是企业发展的核心动力。因此,公司一直致力于在石英晶体和晶体振荡器领域进行技术研发和创新。通过不断的技术积累和优化,FMI成功开发出了一系列高性能、高稳定性的产品,如压控温度补偿晶体振荡器(VCTCXO)、压控晶体振荡器(VCXO)、温度补偿晶体振荡器(TCXO)等。这些产品的推出不仅丰富了FMI的产品线,还进一步提升了公司在行业内的竞争力。

Crocus公司的发展小趣事

随着产品性能的不断提升和市场需求的持续增长,Crocus开始积极拓展市场。公司加强与全球知名企业的合作,共同推动TMR传感器技术在各个领域的应用。同时,Crocus还注重品牌建设,通过参加国际电子展览、发布技术论文等方式提升品牌知名度和影响力。

HELUKABEL公司的发展小趣事

随着市场的不断变化和需求的日益增长,Crocus意识到只有不断创新才能保持竞争优势。因此,公司加大了研发投入,成功推出了一系列具有创新性和竞争力的TMR传感器产品。这些产品不仅具有高精度、高灵敏度等优异性能,还广泛应用于电动汽车、清洁能源和自动化等领域,为行业的快速发展提供了有力支持。

GE Power Electronics Inc公司的发展小趣事
在电路制作完成后,进行充分的测试验证,包括功能测试、性能测试和可靠性测试等。通过测试发现并解决潜在问题,确保电路的稳定性和可靠性。
Flamar公司的发展小趣事

面对电子行业供应链日益复杂的挑战,Flamar公司高度重视供应链管理和优化工作。公司通过引入先进的供应链管理系统,实现了对原材料采购、生产制造、物流配送等各个环节的精准控制。同时,公司还积极与上下游企业建立长期稳定的合作关系,共同构建高效的供应链生态体系。这些措施有效降低了公司的运营成本,提高了生产效率和产品质量,进一步增强了公司的市场竞争力。

问答坊 | AI 解惑

干扰对CDMA手机接收器测试的影响

在对行动电话进行测试时,了解可能的干扰讯号源及其在手机前端所表现出来的效果是很重要的,它可以有助于确定接收器测试对RF干扰的感应情况,并找出消除干扰讯号的可行方法。本文介绍CDMA手机接收器在测试时遇到的干扰特性,并加以详细分析,提出参 ...…

查看全部问答>

QuartusII基本操作流程

本帖最后由 paulhyde 于 2014-9-15 09:21 编辑 QuartusII基本操作流程  …

查看全部问答>

PIC单片机如何与ZIGBEE设备通信?

ZIGBEE设备是一种单片机吗?PIC16F73如何与ZIGBEE芯片通信?需要使用串口通信吗?…

查看全部问答>

关于嵌入式系统开发的问题

我打算学习嵌入式系统的开发,不知道要学习哪种开发语言和开发工具。…

查看全部问答>

SED1335屏使用问题

我想用C51单片机控制控制器SED1335.直接用P0口驱动,驱动能力足够吗? 然后将A0,CS,WR,RD分别与P2.0,P2.1,P2.2,P2.3相连。但是我看到的程序例子中好像没看到对这A0,CS,WR,RS的操作啊。 搜到得程序中,发现很多这样使用的: /* 定义LCM地址 */ ...…

查看全部问答>

modelsim 没有输出

module serial(clk,a,q); input clk; output a,q; reg a,q; always @(posedge clk) begin a=~q; q=~q; end endmodule 各位大侠帮忙 ...…

查看全部问答>

fsmc驱动3.5rgb接口的tft彩屏,人家是怎么做的。。

http://www.ramtron-online.cn/user109685/blog/09-04/169227_6912c.html 这个家伙做出来了,但是有人说不是没有lcd控制器,不能实现吗??…

查看全部问答>

不良驾驶习惯很危险 车主请注意!

经常在路上开车的车主朋友可能注意到了,近期由于市区道路在四处挖开维修,部分路段封闭,加剧了车辆拥堵的紧张局面。另外,在一些新修的道路上由于没有及时标上交通指示线,也令一些车主要么无所适从,要么随意变线,追尾、刮擦之类的小事故频频出 ...…

查看全部问答>