历史上的今天
返回首页

历史上的今天

今天是:2024年12月14日(星期六)

2021年12月14日 | STM32外部中断事件控制器EXTI概念及使用方法

2021-12-14 来源:eefocus

前言

EXTI: External interrupt / event controller

外部中断/事件控制器


提示:以下是本篇文章正文内容


一、EXTI功能框图

在这里插入图片描述

二、使用方法

1.EXTI_InitTypeDef 初始化结构体

1-EXTI_Line:用于产生中断/事件线

2-EXTI_Mode : EXTI模式(中断/事件)

3-EXTI_Trigger:触发(上/下/上下)

4-EXTI_LineCmd:使能或者失能(IMR/EMR)


2.实现步骤

1-初始化要连接到EXTI的GPIO

2-初始化EXTI用于产生中断/事件

3-初始化NVIC,用于处理中断

4-编写中断服务函数

5-main函数


三、代码实现

1.EXTI .C文件

#include "bsp_exti.h"


static void EXTI_NVIC_Config(void)

{

NVIC_InitTypeDef NVIC_InitStruct;

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);

NVIC_InitStruct.NVIC_IRQChannel = EXTI0_IRQn;

NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 1;

NVIC_InitStruct.NVIC_IRQChannelSubPriority = 1;

NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;

NVIC_Init(&NVIC_InitStruct);

}


void EXIT_Key_Config(void)

{

GPIO_InitTypeDef  GPIO_InitStruct;

EXTI_InitTypeDef  EXTI_InitStruct;

// 配置中断优先级

EXTI_NVIC_Config();

// 初始化GPIO

RCC_APB2PeriphClockCmd(KEY1_INT_GPIO_CLK, ENABLE);

GPIO_InitStruct.GPIO_Pin = KEY1_INT_GPIO_PIN;

GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN_FLOATING;

GPIO_Init(KEY1_INT_GPIO_PORT, &GPIO_InitStruct);

// 初始化EXTI

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);

GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0);

EXTI_InitStruct.EXTI_Line = EXTI_Line0;

EXTI_InitStruct.EXTI_Mode = EXTI_Mode_Interrupt;

EXTI_InitStruct.EXTI_Trigger = EXTI_Trigger_Rising;

EXTI_InitStruct.EXTI_LineCmd = ENABLE;

EXTI_Init(&EXTI_InitStruct);

}


2.EXTI .H文件

#ifndef __BSP_EXTI_H

#define __BSP_EXTI_H


#include "stm32f10x.h"


#define KEY1_INT_GPIO_PIN           GPIO_Pin_0

#define KEY1_INT_GPIO_PORT          GPIOA

#define KEY1_INT_GPIO_CLK           RCC_APB2Periph_GPIOA


void EXIT_Key_Config(void);


#endif /* __BSP_EXTI_H */


2.MAIN.C

#include "stm32f10x.h"   // 相当于51单片机中的  #include

#include "bsp_led.h"


#include "bsp_exti.h"


void Delay( uint32_t count )

{

for(; count!=0; count--);

}


int main(void)

{

// 来到这里的时候,系统的时钟已经被配置成72M。

LED_GPIO_Config();

EXIT_Key_Config();


while(1)

{


}

}

推荐阅读

史海拾趣

FASTRAX公司的发展小趣事

被u-blox并购后,FASTRAX并没有停止创新的步伐。相反,它借助u-blox的资源和支持,不断推出新的产品和服务。同时,FASTRAX也积极应对市场变化,不断调整和优化其业务模式。在未来,FASTRAX将继续致力于成为全球领先的GPS产品和服务提供商,为电子行业的发展做出更大的贡献。

请注意,以上故事仅为概述,并未达到每个500字的详细要求。如需更详细的故事内容,建议查阅相关新闻报道或公司官方资料。

浙江东亚电子(DongYa)公司的发展小趣事

浙江东亚电子注重企业文化的建设,致力于为员工提供一个良好的工作环境和发展平台。公司关注员工的学习和成长,为员工提供持续长效的发展机会和有竞争力的薪酬。同时,公司还积极开展各类文化活动和社会公益活动,增强员工的归属感和凝聚力。

这些故事框架展示了浙江东亚电子在电子行业中发展起来的几个重要方面。通过技术创新、产业布局拓展、国际市场开拓、品质管理提升和企业文化建设等方面的努力,公司不断壮大自身实力,成为行业内的佼佼者。

General Dynamics SATCOM Technologies公司的发展小趣事

浙江东亚电子不仅在国内市场上取得了显著成绩,还积极开拓国际市场。公司已为多家世界五百强企业、上市公司提供服务,如华为、中兴、通用电气及西门子等。通过与这些国际知名企业的合作,公司不仅提升了自身品牌的影响力,还积累了丰富的国际市场经验。

Bliley Technologies Inc公司的发展小趣事

二战期间,Bliley迎来了其历史上的一个重要时刻。由于战争对通信设备的巨大需求,Bliley的产品成为军事通信领域的关键组件。政府的大量采购合同使得Bliley的销售额直线上升,员工数量也急剧增加。为了满足战争期间的巨大需求,Bliley不得不扩建工厂,并实行昼夜不停的生产制度。这段时期,Bliley不仅在军事通信领域取得了显著成就,同时也为其在战后的发展奠定了坚实基础。

创世(CS)公司的发展小趣事

创世公司在SD NAND存储产品的研发过程中,不断突破技术壁垒,实现了产品的创新。例如,2018年,为满足轨道交通、航空航天、工业控制等行业类客户对存储产品的特殊需求,创世公司首家推出了第二代SD NAND产品。这一产品不仅具有更快的读写速度和更宽泛的使用环境,还能承受高低温冷热冲击、随机掉电等苛刻的操作环境。同时,创世公司还为客户提供个性化的固件定制服务,进一步满足了客户的个性化需求。

BOT公司的发展小趣事

在20世纪80年代,马来西亚政府选择了BOT融资模式来建设一条重要的高速公路。经过与多家私人企业的谈判,最终与马来西亚联合工程公司达成了特许权合约。该公司负责筹集资金、建设并经营这条高速公路。在约定的特许经营期内,该公司通过收取过路费来回收投资和获取利润。该项目最终成功地促进了马来西亚的交通基础设施建设,并被国际金融界誉为BOT模式的成功案例。

由于篇幅限制,这里先为您提供两个故事作为示例。如果需要更多故事,可以继续输入请求。同时,请注意,以上故事均基于公开资料整理,仅供参考。

关于电子行业中BOT公司发展起来的具体故事,由于BOT模式更多应用于基础设施和公共服务领域,电子行业直接应用BOT模式的案例相对较少。但可以从电子行业的基础设施建设,如电子工业园区、数据中心等方面找到相关案例。如果需要,我可以进一步为您搜索和整理这方面的资料。

请注意,由于电子行业中BOT模式的应用相对较少,因此可能难以找到五个完全符合您要求的故事。如果您对电子行业中其他类型的公司或项目有兴趣,我也可以为您提供相关信息。例如,我可以分享一些关于电子行业中创业公司、技术创新公司或跨国企业的发展故事。这些故事可能涉及产品创新、市场拓展、技术合作等主题,同样具有启发性和趣味性。请告诉我您的具体需求,我将尽力提供帮助。

问答坊 | AI 解惑

NIOS 设计从入门到精通

NIOS 设计从入门到精通.................................................. 1 目录 .................................................................. 3 总体概述 .............................................................. 5 第 ...…

查看全部问答>

51开发板常用芯片pdf资料

刚开始学习单片机时,需要一个开发板,对开发板上的元器件我们要有一个基本的了解,才能好好的进一步学习如何编写程序,现在给大家分享一个开发板常用芯片的资料,希望大家好好学习,天天向上…

查看全部问答>

【藏书阁】数字电路解题技巧50法及题解300例

目录: A篇 数字电路解题技巧50法 A.1 数制与逻辑代数 一法2“进制数—2”进制数的快速转换法 二法优进制数—n进制数的通用转换法 三法求取逻辑函数最小项之和形式的三种解法 四法求取逻辑函数最大项之积形式的三种解法 五法用代数化简法 ...…

查看全部问答>

请问ADM1066芯片管理怎么用!

我需要对+5V、 -5V 、+15 V、-15V 、+3.3V、+1.8V进行监测,其中+1.8V由+3.3V稳压,其他均由开关电源模块输出,且各路电流均很大10A以上,主要监测各路输出是否正常,相当于实时自检上报电源状态是否正常,通过LED显示出来。还有一个问题就是假如某 ...…

查看全部问答>

WINCE 5.0 摄像头驱动(PXA270)

各位英雄:     小弟的开发环境:PXA270+WINCE5.0,摄像头为OV9650,现在要开发驱动及测试应用程序。手上的驱动源码是ADCM2650的,而且貌似支持DirectShow,因为导出函数有:     CAM_Init     CAM_Deinit   ...…

查看全部问答>

音量与增益的问题

在电路上先增益调节,后音量调节 如何寻找一个平衡点,在用耳机听时,使的在调增益的时候,音量在增大;在增益不变的情况下,调节音量,音量也在增大,并且在这个过程中,用耳机听不到类似于自激的现象…

查看全部问答>

向44b0上移植uclinux时可能会用的工具软件包

在网上花了点时间找到的。 [ 本帖最后由 范小川 于 2010-9-14 22:51 编辑 ]…

查看全部问答>

STR710的启动问题

                                 请问斑竹,我打算在144pin 的str710 上外扩一片2M的Norflash 和一片Sdram,特别说明这个系统不跑OS, ...…

查看全部问答>

基于ZigBee技术的远程医疗监护系统设计方案

基于ZigBee技术的远程医疗监护系统设计方案摘 要:将无线传感器网络引入医疗监护系统,提出了一种由ZigBee传感器和无线局域网构成的远程医疗监护系统的体系结构和具体实现方法。系统中,节点和基站设备所使用的近距离通信标准为802. 15. 4 /ZigBee ...…

查看全部问答>