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

    浏览量

    6983
  • STM8S
    +关注

    关注

    16

    文章

    149

    浏览量

    31146
收藏 人收藏

    评论

    相关推荐

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

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

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

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

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

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

    stm32f1如何将外部中断关掉hal库

    引入相关的头文件。在HAL库中,与外部中断相关的头文件是stm32f1xx_hal_exti.h和stm32f1xx_hal_gpio.h。这两个头文件提供了对外部
    的头像 发表于 12-22 13:52 1055次阅读

    STM32如何配置外部中断?STM32外部中断配置步骤

    上跌沿触发或上升沿触发的外部中断线。这些中断线可以通过中断线控制器(EXTI)进行设置,并可以绑定到不同的GPIO端口上,以实现
    的头像 发表于 10-26 17:47 2006次阅读

    stm32 HAL库开发-EXTI外部中断编程

    如下图所示,作用于外部IO口的信号,实际上经过三个部分进入NVIC控制器:GPIO、EXTI控制器、NVIC控制器。
    的头像 发表于 10-26 15:46 338次阅读
    stm32 HAL库开发-<b class='flag-5'>EXTI</b><b class='flag-5'>外部</b><b class='flag-5'>中断</b>编程

    STM32外部中断

    68个可屏蔽中断通道,包括EXTI,TIM,ADC,USART,SPI,I²C,RTC等多个外设(F1系列最多的数量,以型号为主);
    的头像 发表于 10-24 09:29 248次阅读
    STM32<b class='flag-5'>外部</b><b class='flag-5'>中断</b>

    外部中断的非向量处理模式介绍

    “NULL”,实际上还是使用中断向量表里面的默认函数。 后面的“EXTI0_IRQHandler”函数就是外部中断0的默认中断处理函数。详细
    发表于 08-16 07:40

    STM32L4外部中断及事件控制模块(EXTI)

    电子发烧友网站提供《STM32L4外部中断及事件控制模块(EXTI).pdf》资料免费下载
    发表于 08-01 10:23 0次下载
    STM32L4<b class='flag-5'>外部</b><b class='flag-5'>中断</b>及事件控制模块(<b class='flag-5'>EXTI</b>)

    GD32F303固件库开发(15)----外部中断EXTI

    本章配置GD32F303使用EXTI进行驱动LED。
    的头像 发表于 07-26 15:56 818次阅读
    GD32F303固件库开发(15)----<b class='flag-5'>外部</b><b class='flag-5'>中断</b><b class='flag-5'>EXTI</b>

    STM32CUBEMX开发GD32F303(15)----外部中断EXTI

    本章STM32CUBEMX配置STM32F103,并且在GD32F303中进行开发,同时通过开发板内进行验证。 使用外部中断EXTI进行驱动LED。
    的头像 发表于 07-26 15:53 812次阅读
    STM32CUBEMX开发GD32F303(15)----<b class='flag-5'>外部</b><b class='flag-5'>中断</b><b class='flag-5'>EXTI</b>

    STM32CUBEIDE(14)----外部中断EXTI

    外部中断和事件控制器 (EXTI) 管理外部和内部异步事件 / 中断,并生成相应的事件请求到CPU/
    的头像 发表于 07-26 14:33 948次阅读
    STM32CUBEIDE(14)----<b class='flag-5'>外部</b><b class='flag-5'>中断</b><b class='flag-5'>EXTI</b>

    STM32的IO外部中断EXTI的使用

    的方式访问输入引脚,还可以通过另外一种叫做外部中断的方式来对引脚的输入信号进行检测,本篇首先介绍下EXTI的结构,接着介绍外部中断的相关概念
    的头像 发表于 06-22 10:21 1163次阅读
    STM32的IO<b class='flag-5'>外部</b><b class='flag-5'>中断</b><b class='flag-5'>EXTI</b>的使用

    CKS32F4xx系列产品EXTI应用

    EXTI(External interrupt/event controller)—外部中断/事件控制器,管理了控制器的 23个中断/事件线。每个
    的头像 发表于 05-12 15:54 369次阅读
    CKS32F4xx系列产品<b class='flag-5'>EXTI</b>应用

    STM32外部中断控制器EXTI详解

    什么是外部中断控制器,外部中断控制器在STM32芯片中处于什么位置,它的作用是什么,EXTI与GPIO的映射关系?
    的头像 发表于 04-20 11:44 1808次阅读
    STM32<b class='flag-5'>外部</b><b class='flag-5'>中断</b>控制器<b class='flag-5'>EXTI</b>详解