历史上的今天
今天是: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
史海拾趣
|
步进电机驱动器高集成度芯片TB6560AHQ,详细功能优势说明 TB6560AHQ在具体应用方面的优势 1、在低转速运行系统中的应用优势 低转速运行系统,是指时钟频率不高、以小电流驱动为主的系统,比如转速为每分钟几转到100转,用户在此种应用条件下如使用传统的驱动方案,要么因集成芯片细分太低,而使低速振动 ...… 查看全部问答> |
|
基于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 支持arm7和arm9,我想知道能不能用传统的arm开发板来开发 .Net Micro Framework 嵌入式应用… 查看全部问答> |
|
这是前些日子在使用uc/GUI的时候即下来的一些东西原来发布在EDACN的bbs上面。现在不知道沉到哪里去了。现在把它重新整理发布在这里。随后在明年过年的时候把后续的几个高级主题整理出来。 下面开始我的笔记! 有兴趣的兄弟们可以来看看。 ste ...… 查看全部问答> |
|
计算机组成原理课程设计时碰到这么个问题,“74LS181提高运算速度的原因时什么”,呵呵,书上没有,老师上课也没讲过,现在我们全系都没有人会,当然也google不到… 查看全部问答> |




