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

    浏览量

    7142
  • STM8S
    +关注

    关注

    16

    文章

    149

    浏览量

    32519
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    在CW32F030 MCU上设置外部中断和RTC唤醒条件的示例

    \"// 假设这是MCU的头文件 // 外部中断处理函数 void EXTIx_IRQHandler(void) { if (__HAL_GPIO_EXTI
    发表于 11-25 08:00

    求助,关于蜂鸟mcu外部中断的问题求解

    请问我如果想知道具体是哪个外部中断触发,该看哪个plic寄存器呢,是看pending吗还是claim/complete,claim/complete这个寄存器是什么意思呢,我看他的地址
    发表于 11-07 07:14

    RVMCU课堂「12」: 手把手教你玩转RVSTAR—外部中断

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

    瑞萨RA系列MCU的外部引脚中断详解

    上一章节我们已经详细介绍了NVIC、ICU、ELC、NMI并对RA系列MCU的中断管理系统有个全局的了解,我们这一章节的内容是如何控制外部中断,也是内核里的NVIC的实例应用,这也是RA系列MCU非常重要的一个
    的头像 发表于 09-23 09:38 1211次阅读
    瑞萨RA系列MCU的<b class='flag-5'>外部</b>引脚<b class='flag-5'>中断</b>详解

    关于江协科技的中断实验

    在江协科技的stm32的中断实验的视频中的实验。为什么最后即使加了再次判断引脚电平,但是还是不稳定,还会有跳变啊?有没有大神解答一下疑惑? 附代码: #include \"
    发表于 09-09 21:23

    何时使用 GPIO 中断外部中断

    何时使用 GPIO 中断外部中断
    发表于 08-26 07:27

    第六章 外部中断

    本章介绍W55MH32的IO口作为外部中断输入的使用。先阐述了NVIC(嵌套向量中断控制器) 的结构、寄存器、优先级及相关函数,再说明EXTI
    的头像 发表于 05-26 16:27 986次阅读
    第六章 <b class='flag-5'>外部</b><b class='flag-5'>中断</b>

    极海APM32F003触发NMI中断的解决方案

    问题:APM32F003F6P6 PC3配置成外部中断口,下拉触发之后没有进入EINTC_IRQHandler外部中断函数,反而一直触发NMI中断
    的头像 发表于 05-24 14:44 693次阅读
    极海APM32F003触发NMI<b class='flag-5'>中断</b>的解决方案

    stm32f103c8t6用中断采出来的数来回跳?怎么样才能稳定下来?

    STM32F103C8T6用中断采集AD677的16位数字信号,采的是2V基准电压,采出的值在0.5和3之间来回跳。 AD677的参考电压是5V,AD677采样时序如下 串口助手得到的数如下,我用
    发表于 04-28 17:17

    外部中断中将printf写入,外部中断LED可以翻转,但串口不可显示,为什么?

    外部中断中将printf写入,外部中断LED可以翻转,但串口不可显示 ```/* USER CODE END Header */ /* Includes
    发表于 03-13 06:19

    STM32L431在STOP2模式下能否将串口的RX配置成EXTI唤醒呢?

    STM32L431在STOP2模式下能否将串口的RX配置成EXTI唤醒呢?为什么我的唤醒不了呢?并且空闲中断也不能用,手册中说在硬件上已经将EXTI与RX引脚连到一块了,但是呢STOP2模式不能
    发表于 03-12 06:03

    使用STM32H743对外部一个ADC芯片做数据采集,根据CubeMX配置的驱动无法触发SPI,怎么解决?

    最近使用STM32H743对外部一个ADC芯片做数据采集,想通过外部中断信号触发SPI DMA读取数据(每次3byte),但根据CubeMX配置的驱动无法触发SPI(无CLK时钟信号发出)。 工程也
    发表于 03-07 07:40

    stm32l431rct6的LPTIM计数模式,每次初始化就进入中断是哪里出了问题?

    (); // 配置 正确的引脚为外部中断输入(或者配置为外部触发信号引脚) GPIO_InitStruct.Pin = GPIO_PIN_0; GPIO_InitStruct.Mode
    发表于 03-07 06:16

    串口中断是内部中断还是外部中断,串口中断是怎么触发的

    串口中断通常被视为外部中断。虽然串口控制器(如USART、UART等)可能集成在微控制器或处理器的内部,但从中断的角度来看,串口中断是由处理
    的头像 发表于 01-29 15:03 2619次阅读

    UCC21220EVM-009用户指南

    电子发烧友网站提供《UCC21220EVM-009用户指南.pdf》资料免费下载
    发表于 12-07 14:47 0次下载
    UCC21220EVM-<b class='flag-5'>009</b>用户指南