0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM8S_009_ EXTI外部中断

黄工的嵌入式威廉希尔官方网站 圈 来源:黄工的嵌入式威廉希尔官方网站 圈 2020-03-14 14:56 次阅读

有人问

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

Ⅰ写在前面

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

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

ⅡEXTI基础知识

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

开启中断功能

用户可以在I/O引脚为输入模式时通过设置Px_CR2寄存器的相应位来配置某个I/O作为外部输入中断模式。在该配置下, I/O引脚上的一个信号沿或是低电平会产生一个中断请求。

在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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • EXIT图
    +关注

    关注

    0

    文章

    4

    浏览量

    7000
  • STM8S
    +关注

    关注

    16

    文章

    149

    浏览量

    31424
收藏 人收藏

    评论

    相关推荐

    STM32CUBEMX(11)--外部中断(EXTI)

    概述 外部中断和事件控制器 (EXTI) 管理外部和内部异步事件 / 中断,并生成相应的事件请求到CPU/
    发表于 09-10 15:44

    【GD32 MCU 入门教程】GD32 MCU 常见外设介绍(4)EXTI 中断介绍

    EXTI(中断/事件控制器)包含多个相互独立的边沿检测电路并且能够向处理器内核产生中断请求或唤醒事件。 EXTI 有三种触发类型:上升沿触发、下降沿触发和任意沿触发。
    的头像 发表于 08-13 11:20 481次阅读
    【GD32 MCU 入门教程】GD32 MCU 常见外设介绍(4)<b class='flag-5'>EXTI</b> <b class='flag-5'>中断</b>介绍

    TPD8S009用于DisplayPort和HDMI的8通道ESD保护数据表

    电子发烧友网站提供《TPD8S009用于DisplayPort和HDMI的8通道ESD保护数据表.pdf》资料免费下载
    发表于 07-11 10:41 0次下载
    TPD<b class='flag-5'>8S009</b>用于DisplayPort和HDMI的<b class='flag-5'>8</b>通道ESD保护数据表

    求助,关于STM8S103外部中断问题求解

    );/*设置为上升沿和下降沿触发触发中断*/ EXTI_CR1 |= (uint8_t)((uint8_t)(0x01) << 4);/*设置为上升沿和下降沿触发触发
    发表于 05-16 07:25

    STM8进入halt模式后由EXTI中断唤醒,程序无法继续正常运行下去的原因?

    大家好,我现在有一个问题请教: 1. 我的STM8S103K3在执行完相关任务后进入halt模式,在进入之前我设置了几个EXTI中断 2. 中断服务函数中没有任何的操作,只起一个唤醒系
    发表于 05-15 06:40

    STM8L外部中断跟普通MCU的外部中断不一致,为什么?

    最近公司一个案子需要用到超低功耗MCU,在TI和ST的片子中纠结了一段时间,最后选了ST的STM8L151G2U6。 在使用外部中断的时候迷糊了,发现这个的外部
    发表于 05-15 06:23

    stm32怎么设置EXTI10 、EXTI11、EXTI12、EXTI13、EXTI14、EXTI15的中断优先级呢?

    EXTI15_10_IRQHandler中EXTI10 、EXTI11、EXTI12、EXTI13、EX
    发表于 05-14 08:30

    求助,STM8S外部中断的问题求解

    stm8s103 外部中断问题,比如PD2口设置了外部中断,上升沿触发,此中断软件优先级3级最高
    发表于 05-10 08:23

    STM8S外部中断进去了,出不来怎么解决?

    STM8S外部中断进去了,出不来。也没有中断标志位,怎么才能让程序走出来?
    发表于 05-09 06:25

    【GD32F470紫藤派开发板使用手册】第三讲 EXTI-按键中断检测实验

    通过本实验主要学习以下内容: EXTI中断原理; 按键中断检测原理;
    的头像 发表于 05-05 09:22 543次阅读
    【GD32F470紫藤派开发板使用手册】第三讲 <b class='flag-5'>EXTI</b>-按键<b class='flag-5'>中断</b>检测实验

    请问stm32l152的外部中断EXTI9_5_IRQn怎么使用?

    中断向量EXTI9_5_IRQn包含了5种管脚的中断。如果我设置了GPIO6和GPIO7为外部中断。我使用HAL库,,那么
    发表于 04-22 06:14

    STM32中断分组及外部中断的配置过程分享

    结构体   NVIC_InitStructure.NVIC_IRQChannel=EXTI2_IRQn;//使能外部中断所在的通道
    发表于 04-08 08:05

    PC13 PC14 PC15作为外部中断输入口,频繁进入中断是为什么?

    );/* 禁止修改RTC和后备寄存器*/ //BKP_ITConfig(DISABLE); ? ? ? /* 禁止TAMPER 中断*/ } void EXTI0_Config(void)//外部
    发表于 04-03 07:39

    EXTI外部中断在错误的边沿误触发可能什么原因?

    大家在进行MCU项目开发时是否碰到过EXTI外部中断在错误的边沿误触发的情况?比如EXTI配置的为下降沿触发,实际情况在个别上升沿的时候也被误触发了。
    的头像 发表于 02-03 09:48 774次阅读
    <b class='flag-5'>EXTI</b><b class='flag-5'>外部</b><b class='flag-5'>中断</b>在错误的边沿误触发可能什么原因?

    外部中断的工作原理 外部中断方式有哪些 为什么要使用外部中断

    外部中断的工作原理是单片机响应外部事件的一种机制** **。
    的头像 发表于 01-28 17:37 3681次阅读