历史上的今天
返回首页

历史上的今天

今天是:2025年01月13日(星期一)

正在发生

2020年01月13日 | STM32-EXTI中断的分析及应用

2020-01-13 来源:eefocus

EXTI中断/事件控制器,管理了控制器的20根中断/事件线。每个对应了一个边沿检测器,可以实现输入信号的上升沿或者下降沿检测,EXTI可以实现对每个中断或者事件的单独配置


这里中断通常是指GPIO的中断   事件可以是AD/DA转换  TIM定时器等···


通过书上的EXTI 功能框图可以清楚的知道配置EXTI中断的具体过程

这里拿EXTI控制GPIO为例:


编程要领:


1)初始化用来产生中断的GPIO


2)初始化EXTI


3)配置NVIC


4)编写中断函数


这里只贴出配置EXTI和中断函数的编写:


void EXTI_Key_config(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

EXTI_InitTypeDef EXTI_InitStructure;

 

//配置中断优先级

EXTI_NVIC_Config();

 

//开启KEY相关GPIO的外设时钟

RCC_APB2PeriphClockCmd( KEY1_GPIO_CLK, ENABLE);

//选择控制的引脚

GPIO_InitStructure.GPIO_Pin = KEY1_GPIO_PIN;

//选择输出方式为浮空输出

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;   

//设置引脚速率为50MHZ

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 

//调用库函数,初始化GPIO

GPIO_Init(KEY1_GPIO_PORT, &GPIO_InitStructure);

//初始化EXTI

GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource0);

RCC_APB2PeriphClockCmd( KEY1_GPIO_CLK, ENABLE);

//配置EXTI的中断线

EXTI_InitStructure.EXTI_Line = EXTI_Line0;

//配置EXTI模式

EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;

//配置触发类型

EXTI_InitStructure.EXTI_LineCmd = ENABLE;

EXTI_Init(&EXTI_InitStructure);

}

void EXTI0_IRQHandler(void)

{

if(EXTI_GetITStatus(EXTI_Line0) != RESET )

{

LED_TOGGLE;

}

EXTI_ClearITPendingBit(EXTI_Line0);

        //清除中断

}

推荐阅读

史海拾趣

Eureka Microelectronics Inc公司的发展小趣事

Eureka一直重视研发实力的提升和技术创新。公司拥有一支专业的研发团队,致力于新技术的研发和应用。近年来,Eureka在人工智能、物联网等领域取得了多项技术突破,推出了一系列具有竞争力的新产品。这些技术的突破和应用,不仅提升了Eureka的产品性能和质量,也推动了公司在行业内的领先地位。

EF Johnson Technologies Inc公司的发展小趣事

在产品质量方面,EF Johnson公司始终坚持高标准、严要求。公司建立了完善的质量管理体系,从原材料采购到生产制造再到售后服务,每一个环节都严格把关。这种对品质的执着追求让EF Johnson的产品在市场上赢得了良好的口碑和用户的信赖。随着品牌知名度的提升,EF Johnson的市场份额也稳步增长。

BOSER公司的发展小趣事

BOSER公司始终关注企业社会责任和可持续发展。公司在生产过程中积极采用环保材料和技术,降低能耗和排放。同时,BOSER还积极参与公益事业,为社会做出贡献。这些举措不仅提升了公司的社会形象,也为公司的可持续发展奠定了坚实基础。

需要强调的是,以上五个故事是基于电子行业常见趋势和挑战虚构的BOSER公司的发展故事。虽然这些故事是虚构的,但它们反映了电子公司在发展过程中可能遇到的机遇和挑战,以及如何通过不断创新和适应市场变化来实现持续发展。如果您希望了解真实存在的电子公司的发展故事,建议查阅相关公司的官方资料或新闻报道。

博众电气(BOZHONG ELECTRIC)公司的发展小趣事

随着市场需求的不断增长,博众电气意识到传统的生产方式已经无法满足客户的需求。为了提高生产效率和产品质量,公司决定引进自动化生产线。

在自动化生产线的建设过程中,博众电气投入了大量的人力和物力资源。公司引进了先进的自动化组装设备和检测设备,实现了产线90%以上的自动化生产。这不仅大大提高了生产效率,还降低了人力成本,使得博众电气在市场竞争中更具优势。

芯联(CHIPLINK)公司的发展小趣事

面对激烈的市场竞争和不断上升的成本压力,芯联集成通过优化成本结构、提高生产效率等措施,成功降低了生产成本。同时,公司还加强了与供应商的合作,实现了供应链的优化管理。这些努力使芯联集成在保持产品质量的同时,降低了产品售价,提升了盈利能力。

ALLIED [Allied Electronics]公司的发展小趣事

面对激烈的市场竞争和不断上升的成本压力,芯联集成通过优化成本结构、提高生产效率等措施,成功降低了生产成本。同时,公司还加强了与供应商的合作,实现了供应链的优化管理。这些努力使芯联集成在保持产品质量的同时,降低了产品售价,提升了盈利能力。

问答坊 | AI 解惑

matlab第六课预告!

好不容易盼到这里啦! 这里我们一起来分享一下二维图形的绘制和修饰 对数坐标图,极坐标图 饼状图,梯形图,概率分布图,向量图等等的二维图形 如果你觉得不过瘾, 我们接着来三维图形 甚至是GUI的界面都可以的啦! 期待大家的帮助拉!…

查看全部问答>

【分享】ATmega16学习笔记PDF完整版下载(WinAVR)

笔记均为原创,欢迎转载,转载请注明出处! 持续更新中,敬请关注!…

查看全部问答>

USB的问题

现在碰到了一个问题。。。。在USB枚举这一块 在枚举的工程中 当插入USBdevice后。出现了一个RESET的中断,之后马上就会出现一个SUSPEND中断,这正常吗?出现这个中断我该怎么处理,是硬件的问题还是软件的问题…

查看全部问答>

求嵌入式开发的经典教材

本人是嵌入式开发的新手,请高人说说嵌入式开发的什么教材比较经典或则比较好的网站,谢谢!…

查看全部问答>

打印驱动问题(位图打印),请高手指教

我用的是DDK里的打印成位图驱动。并对OEMSendPage进行了Hook。主要是想把位图按页分成多个图片。当我打印多页时(以5页为例),在第一页插入一张图片,结果只打印后2,3,4,5页。当每页都插入图片,则只是打印成一张长长的位图(又回到了原始的DDK ...…

查看全部问答>

有关捕获单元的编程问题

我是新手,最近在编一个程序需要用到捕获单元,但有一点想不清楚,就是我需要在第一次捕获时屏蔽中断,第二次捕获后响应中断,从而读出这两个的差值,但程序应该怎么编写呢。感谢指点!…

查看全部问答>

DSP 28335

由于本人刚刚接触DSP28335,想学习一下这个处理器,哪位大哥有好的资料,麻烦给小弟分享一下。 还有就是DSP28335在什么软件基础上编程。 谢谢了。  …

查看全部问答>

谁遇到过SIM300,接受TCP数据后,串口读取数据时,发现数据丢失情况

谁遇到过SIM300,接受TCP数据后,串口读取数据时,发现数据丢失情况~~~急啊~~~高手解答一下啊~~急~!!!…

查看全部问答>

频率计

小弟要做个频率计  用32测外部输入频率   没接触过32  现在又急着用    那位大哥大姐有这个程序或者有这方面的程序    请发我下 1501806575@qq.com   万分感激。…

查看全部问答>