历史上的今天
返回首页

历史上的今天

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

正在发生

2020年07月13日 | STM8S_009_ EXTI外部中断

2020-07-13 来源:51hei

有人问

我使用EXIT唤醒芯片,没什么没有触发中断,芯片却唤醒了?


Ⅰ写在前面

使用STM8S开发过上面类似功能的朋友应该会知道,STM8S的稳定性不如STM32,特别是在低功耗时,使用EXTI外部中断唤醒,很容易受到干扰信号而唤醒。因此,这种情况需在硬件电路上多加考虑抗干扰的电路。


其次,就是注意软件的上下拉配置,如果外部加了上拉或下拉电阻,不建议再配置成上拉或下拉;如果没有,建议加上。要使其软件稳定,还得深入EXTI的功能。


ⅡEXTI基础知识

STM8S的EXTI外部中断归属于GPIO一类,只需要将其IO配置成外部中断、使能全局中断、在中断入口函数添加相关的代码即可。


开启中断功能


在EXTI_CR[2:1]寄存器中对于每一个中断向量都可以独立编程为上升沿或下降沿触发。

外部中断只有在对应I/O口被设置为输入模式下才有效。


屏蔽中断功能

可以通过对Px_CR2寄存器的相应位进行编程来单独使能/关闭外部中断功能。复位后外部中断是关闭的。


提示:EXTI外部中断只有在IO输入模式下才有效,配置才输出模式,不能正常由外部触发中断。


Ⅲ软件工程源代码

1.关于工程

本文提供的工程代码是基于前面软件工程“STM8S-A04_UART基本收发数据”增加EXTI外部中断修改而来。初学的朋友可以参看我前面对应的基础文章,那些文章讲的比较详细。

2.EXTI引脚配置

我们尚且定义为按键KEY,浮动输入,中断模式。

#define KEY_GPIO_PORT  GPIOD

#define KEY_GPIO_PIN  GPIO_PIN_2

GPIO_Init(KEY_GPIO_PORT, (GPIO_Pin_TypeDef)KEY_GPIO_PIN, GPIO_MODE_IN_FL_IT);

3.EXTI中断配置

void EXTI_Configuration(void)

{

EXTI_SetExtIntSensitivity(EXTI_PORT_GPIOD, EXTI_SENSITIVITY_FALL_ONLY);

EXTI_SetTLISensitivity(EXTI_TLISENSITIVITY_FALL_ONLY);

}

这个地方配置成下降沿中断,端口需对应引脚的端口。


4.中断入口函数

#define KEY_READ    GPIO_ReadInputPin(KEY_GPIO_PORT, KEY_GPIO_PIN)

INTERRUPT_HANDLER(EXTI_PORTD_IRQHandler, 6)

{

if(RESET == KEY_READ)

{

IT_Delay(50);                          //延时消抖

if(RESET == KEY_READ)     //确认按下

{

LED_REVERSE;                   //改变LED状态

}

}

}

提示:我们使用的GPIOD,入口需要对应。


Ⅳ下载

STM8S资料:

http://pan.baidu.com/s/1o7Tb9Yq

软件源代码工程两版本(STM8S-A09_EXTI外部中断):

http://pan.baidu.com/s/1c2EcRo0

推荐阅读

史海拾趣

AMERICASEMI [America Semiconductor, LLC]公司的发展小趣事

随着电子行业的快速发展,AMERICASEMI意识到只有不断创新才能在市场中立于不败之地。因此,公司加大了对研发的投入,积极引进先进的技术和设备,不断提升自身的研发能力。经过多年的努力,AMERICASEMI成功研发出多款具有创新性的半导体产品,如高性能的功率管理芯片和低功耗的传感器等,这些产品在市场上获得了广泛的认可。

Fischer Connectors公司的发展小趣事

AIM公司深知质量是企业的生命线。因此,公司始终将质量管理放在首位,建立了严格的质量控制体系。从原材料采购到产品出厂,每一个环节都经过严格把关,确保产品的质量稳定和可靠。同时,AIM还注重品牌建设,通过提供优质的产品和服务,树立了良好的品牌形象和口碑。

Alpha Industries公司的发展小趣事

为了提高生产效率和产品质量,Alpha Industries决定引入数字化生产线。通过与电子设备制造商合作,公司成功建立起一条自动化生产线,实现了从设计到生产的无缝对接。数字化生产线的建立不仅提高了生产效率,还降低了生产成本,使得Alpha Industries的产品更具市场竞争力。

Floeth Electronic Ltd公司的发展小趣事

为了提高生产效率和产品质量,Alpha Industries决定引入数字化生产线。通过与电子设备制造商合作,公司成功建立起一条自动化生产线,实现了从设计到生产的无缝对接。数字化生产线的建立不仅提高了生产效率,还降低了生产成本,使得Alpha Industries的产品更具市场竞争力。

G-Mag Usa公司的发展小趣事

面对数字化转型的浪潮,G-Mag在2020年决定全面拥抱智能制造。公司投入巨资建设智能工厂和数字化管理平台,引入先进的自动化设备和人工智能技术优化生产流程和管理效率。通过数字化转型,G-Mag实现了生产过程的智能化、自动化和可视化监控,大大提高了生产效率和产品质量。同时,G-Mag还利用大数据和云计算技术分析市场需求和消费者行为,为产品研发和市场推广提供精准的数据支持。在数字化转型的推动下,G-Mag不仅提升了自身的竞争力,还为整个电子行业的智能化发展树立了标杆。

泽耀科技(Ashining)公司的发展小趣事

泽耀科技(Ashining)在创立之初,面临着资金短缺、市场竞争激烈和技术难题等挑战。然而,公司的创始人凭借对电子行业的深刻理解和坚定信念,带领团队攻坚克难,不断研发创新。他们深入市场调研,准确把握消费者需求,成功推出了一款具有竞争力的电子产品,为公司的发展打开了局面。

问答坊 | AI 解惑

步进电机驱动器高集成度芯片TB6560AHQ,详细功能优势说明

TB6560AHQ在具体应用方面的优势 1、在低转速运行系统中的应用优势 低转速运行系统,是指时钟频率不高、以小电流驱动为主的系统,比如转速为每分钟几转到100转,用户在此种应用条件下如使用传统的驱动方案,要么因集成芯片细分太低,而使低速振动 ...…

查看全部问答>

南京小组DIY情人节礼物方案公布

基于TMS320F28027的语言录放模块的设计 文章介绍了这次活动中的关键模块(语音录放模块)的基本设计思路和整个系统的构架,通过一些实际参量的分析,计算,提高整个系统前期设计的可实现性,虽然这个模型还没有经过实际验证,相关的参考实例也比较少,但他 ...…

查看全部问答>

求教一下AT91RM9200访问16位外部ASIC时该如何初始化?

由于我是新手,没有什么分给大家,真正的高手肯定是不在乎这些俗物的,真心希望大家给与帮助! 求教一下AT91RM9200访问16位外部ASIC时该如何初始化? 我用的是NCS2/WR0/NRD,D[15:0]接ASIC的D[15:0],A[19:1]接ASIC的A[18:0],SMC_CSR[2]设置如下: ...…

查看全部问答>

.Net Micro Framework 嵌入式开发

微软的 .Net Micro Framework 支持arm7和arm9,我想知道能不能用传统的arm开发板来开发 .Net Micro Framework 嵌入式应用…

查看全部问答>

请教genprint.dll安装问题

请问安装genprint.dll,还需要其它文件吗,应该怎么安装啊…

查看全部问答>

编译器调试

各位好:      我用一NEC单片机的编译器进行代码调试时,该项目由多文件组成,修改了一个文件当中与编译无关的代码,比如多一个或者少一个空格都会提示好多错误,即使在主函数里屏蔽掉该文件的功能函数,也会提示相同的错误,反正是 ...…

查看全部问答>

[转帖] uC/GUI3.32应用笔记

这是前些日子在使用uc/GUI的时候即下来的一些东西原来发布在EDACN的bbs上面。现在不知道沉到哪里去了。现在把它重新整理发布在这里。随后在明年过年的时候把后续的几个高级主题整理出来。 下面开始我的笔记! 有兴趣的兄弟们可以来看看。 ste ...…

查看全部问答>

74LS181提高运算速度的原因~~~

计算机组成原理课程设计时碰到这么个问题,“74LS181提高运算速度的原因时什么”,呵呵,书上没有,老师上课也没讲过,现在我们全系都没有人会,当然也google不到…

查看全部问答>

温度传感器DS18B20

温度传感器DS18B20…

查看全部问答>