历史上的今天
返回首页

历史上的今天

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

正在发生

2018年10月08日 | STM32F407中断初始化代码

2018-10-08 来源:eefocus

void Interrupt_Init(void)

{

GPIO_InitTypeDef  GPIO_InitStructure;

NVIC_InitTypeDef   NVIC_InitStructure;

EXTI_InitTypeDef   EXTI_InitStructure;

//1.IO初始化

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE); 

GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5;  

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; //普通输入模式

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; //100M

GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; //上拉

GPIO_Init(GPIOF, &GPIO_InitStructure);    //初始化GPIOF2,3,4

//2.开启SYSCFG

RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);      //使能 SYSCFG 时钟

SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOF, EXTI_PinSource2);

SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOF, EXTI_PinSource3);

SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOF, EXTI_PinSource4);

SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOF, EXTI_PinSource5);

//3.初始化线上中断,设置触发方式 

EXTI_InitStructure.EXTI_Line = EXTI_Line2; 

EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; 

EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;  

EXTI_InitStructure.EXTI_LineCmd = ENABLE; 

EXTI_Init(&EXTI_InitStructure); 

 

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); 

 

EXTI_InitStructure.EXTI_Line = EXTI_Line4; 

EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; 

EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; 

EXTI_InitStructure.EXTI_LineCmd = ENABLE; 

EXTI_Init(&EXTI_InitStructure); 

EXTI_InitStructure.EXTI_Line = EXTI_Line5; 

EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; 

EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; 

EXTI_InitStructure.EXTI_LineCmd = ENABLE; 

EXTI_Init(&EXTI_InitStructure); 

//4.配置中断分组

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);

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);      

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);

NVIC_InitStructure.NVIC_IRQChannel = EXTI3_IRQn;          

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

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x03; //响应优先级 3 

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

NVIC_Init(&NVIC_InitStructure);      

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);

NVIC_InitStructure.NVIC_IRQChannel = EXTI4_IRQn;          

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

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x04; //响应优先级 4 

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

NVIC_Init(&NVIC_InitStructure);      

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);

NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn;          

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

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x05; //响应优先级 5 

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

NVIC_Init(&NVIC_InitStructure);      

}

void EXTI2_IRQHandler(void)

{

if (EXTI_GetITStatus(EXTI_Line2) != RESET)

{

EXTI_ClearITPendingBit(EXTI_Line2);

//TODO:

EXTI_ClearITPendingBit(EXTI_Line2);

}   

}

void EXTI3_IRQHandler(void)

{

if (EXTI_GetITStatus(EXTI_Line3) != RESET)

{

EXTI_ClearITPendingBit(EXTI_Line3);

//TODO:

EXTI_ClearITPendingBit(EXTI_Line3);

}   

}

void EXTI4_IRQHandler(void)

{

if (EXTI_GetITStatus(EXTI_Line4) != RESET)

{

EXTI_ClearITPendingBit(EXTI_Line4);

//TODO:

EXTI_ClearITPendingBit(EXTI_Line4);

}   

}

void EXTI9_5_IRQHandler(void)

{

if (EXTI_GetITStatus(EXTI_Line5) != RESET)

{

EXTI_ClearITPendingBit(EXTI_Line5);

//TODO:

EXTI_ClearITPendingBit(EXTI_Line5);

}   

}


推荐阅读

史海拾趣

E-Mark Inc公司的发展小趣事

JKL公司是一家创新型电子企业,专注于研发新能源汽车电子控制系统。为了推动新能源汽车的发展并满足欧洲市场的需求,JKL公司决定对其产品进行E-Mark认证。在认证过程中,JKL公司积极投入研发资源,不断创新技术,提升产品的智能化和安全性。最终,JKL公司的产品成功获得了E-Mark认证,并在欧洲市场得到了广泛应用和认可。这一认证不仅加速了JKL公司新能源汽车技术的市场推广速度,也提升了公司在国际市场的竞争力。

意普(ESPE)公司的发展小趣事

意普(ESPE)公司成立于XXXX年,初期专注于光电保护技术的研发。在创始人XXX的领导下,公司凭借对光电技术的深入理解和创新,成功研发出首款红外线安全保护装置,并在行业内获得了广泛的认可。这一技术的突破不仅为公司赢得了市场份额,也为后续的发展奠定了坚实的基础。

HCH Co公司的发展小趣事

背景:随着全球经济一体化的加速推进,HCH Co公司意识到必须加快全球化步伐以拓展更广阔的市场空间。公司制定了详细的全球化战略,包括在海外设立研发中心、生产基地和销售网络等。

发展:通过全球化战略的实施,HCH Co公司成功进入了多个国际市场,并与当地的企业和机构建立了紧密的合作关系。公司的品牌影响力不断提升,产品销量也实现了快速增长。同时,全球化战略还为公司带来了更多的技术、人才和市场资源,为公司的长期发展奠定了坚实基础。

Electro-Mech Components Inc公司的发展小趣事

在1966年,Electro-Mech Components, Inc. (EMC)做出了一个重要的战略决策——在墨西哥北下加利福尼亚州的蒂华纳开设一家制造工厂。这个决定标志着EMC正式进军国际市场,并开始了其在全球范围内的业务布局。蒂华纳工厂的建立为EMC带来了更低的制造成本和更广阔的市场前景。随着工厂规模的逐渐扩大,EMC的产品线也日益丰富,从最初的发光按钮开关逐渐扩展到指示灯和多开关互锁组件等多个领域。

Diotec Electronics Corp公司的发展小趣事

Diotec Electronics Corp公司成立于XXXX年,由一群富有激情的工程师和技术专家创立。在初创期,公司专注于研发高性能的电子元器件,以应对当时市场上对高效率和可靠性元件的迫切需求。通过不断的技术创新,Diotec成功开发出了一款具有革命性的整流二极管,该产品以其卓越的性能和稳定性迅速赢得了市场的认可,为公司的发展奠定了坚实的基础。

Ametek公司的发展小趣事

Diotec Electronics Corp公司成立于XXXX年,由一群富有激情的工程师和技术专家创立。在初创期,公司专注于研发高性能的电子元器件,以应对当时市场上对高效率和可靠性元件的迫切需求。通过不断的技术创新,Diotec成功开发出了一款具有革命性的整流二极管,该产品以其卓越的性能和稳定性迅速赢得了市场的认可,为公司的发展奠定了坚实的基础。

问答坊 | AI 解惑

1602中文资料 附调试图片

LCD1602,大概介绍下 1602采用标准的16脚接口,其中:   第1脚:VSS为地电源 第2脚:VDD接5V正电源 第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通 ...…

查看全部问答>

超高频无源RFID标签的一些关键电路的设计

来活跃下气氛 ,HOHO 本文针对超高频无源RFID 标签芯片的设计,给出了一些关键电路的设计考虑。文章从UHF RFID标签的基本组成结构入手,先介绍了四种电源恢复电路结构,以及在标准CMOS 工艺下制作肖特基二极管来组成倍压电路的解决方案。然后针对 ...…

查看全部问答>

深大DSP系统设计课件3

第三部分 TI DSP软件开发工具CCS的使…

查看全部问答>

wince开机内存占用问题?

如上图,红色指示区域是wince进入桌面后程序内存的使用量。有9M多呢 这样子正常吗?启动应用都没运行呢! 哪位兄台解答一下啊? …

查看全部问答>

请问如何实现将抓取的图片通过GPRS模块(mc39i)进行无线传输

拨号上网的功能已经实现了 操作系统是linux,最后要移植到arm-linux上去 不知怎么编程能才能实现两端的文件发送和接受这种功能 哪位做过该方面的麻烦不吝赐教下,说一下思路或流程 最好详细点,谢谢…

查看全部问答>

Visual studio 2005上的wince5.0嵌入式开发,高手们进来看看啊

Visual studio 2005上的wince5.0嵌入式开发,就是在PDA上播放个语音文件,    [System.Runtime.InteropServices.DllImport(\"winmm.dll\")]         public static extern long PlaySound(String lpszNam ...…

查看全部问答>

WinCE 6.0 离线安装包 共包含多少个文件啊

     我下载的离线安装包,安装后始终是无法建立OS project,提示WINCEROOR无效,难道是我的离线安装包的问题?…

查看全部问答>

STM8S-DISCOVERY上的stlink可以用在其他板子上吗?

                                 rt…

查看全部问答>

【求助】问下大家,到这一步了,该如何继续?

手头有一块S3C2410的开发板   我想移植UCOS系统 现在已完成的工作:   板子的VIVI已烧写好 UCOS系统代码也已用ADS编译通过   那么接下来该怎么做呢? 该如何把UCOS移植到板子上? 我编写了一个LED的测试实验,该如何一上 ...…

查看全部问答>

易电源学习心得

低輸出電壓紋波 納米模塊在 2 MHz 的固定開關頻率下運\行, 可實現低輸出紋波和高效率的平衡。該模塊 還具有低 ESR 陶瓷電容器的穩定性。使用 一個 10 μF X5R 0805 輸出電容的標準解決方案可實現低於 10mVp-p 的輸出紋波,從而可替代需要較高效率 ...…

查看全部问答>