当前位置:首页 > 单片机 > 单片机
[导读]Ⅰ、写在前面STM8S的稳定性不如STM32,特别是在低功耗时,使用EXTI外部中断唤醒,很容易受到干扰信号而唤醒。因此,这种情况需在硬件电路上多加考虑抗干扰的电路。其次,就是注意软件的上下拉配置,如果外部加了上拉

Ⅰ、写在前面


STM8S的稳定性不如STM32,特别是在低功耗时,使用EXTI外部中断唤醒,很容易受到干扰信号而唤醒。因此,这种情况需在硬件电路上多加考虑抗干扰的电路。

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

为方便大家阅读,本文内容已经整理成PDF文件:

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

作者:strongerHuang

版权所有,未经允许,禁止用于其它商业用途!!!

Ⅱ、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


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

MCS-51单片机有两个外部中断源INT0和INT1,它们分别在P3.2和P3.3引脚出现低电平或下降沿信号时向单片机发出中断请求。外部中断可用于检测单片机外部发生的事件,如键盘敲击和特定脉冲发生的次数等。

关键字: 51单片机 外部中断

外部中断是单片机实时地处理外部事件的一种机制。具体指的是,当某种外部事件发生时,单片机的中断系统迫使CPU暂停正在执行的程序,转而去进行中断事件的处理;中断处理完毕后,又返回被中断的程序处,继续执行下去。这里我们以Nuc...

关键字: MCU 外部中断 ST

STM32CubeMX是官方推荐的配置软件,而HAL库也是取代之前的库函数的通用库,所以STM32CubeMX+HAL库是当前主流的工程创建方式,HAL库的可移植性也高于被取代的库函数。 之前在[程序员小哈]的公众号中写...

关键字: LED 外部中断

1.ARM中一些常见英文缩写解释 MSB:最高有效位; LSB:最低有效位; AHB:先进的高性能总线; VPB:连接片内外设功能的VLSI外设总线; EMC:外部存储器控制器; MAM:存储器加速模块; VIC:向量中...

关键字: ARM THUMB I2C 外部中断

今天查看STM32资料时,对输出速度2M 10M 50M不是很了解,再加上移植ARF2496K程序到STM32时出现意外情况。一、STM8S端作为接收端和发送端时接收到的数据都正常。二、发送端(STM8S),接收端(ST...

关键字: io口 stm32f stm8s 输出速率

STM8S单片机开发环境由三大部分组成,包括PC机上的开发软件(集成开发软件、驱动程序等)、调试&编程器ST-LINK、目标单片机电路板。如下图所示:1、PC机上开发软件PC机上的软件包括:ST-LINK驱动程序...

关键字: stm8s 单片机入门 开发环境

一直理解STM8S定时器有点问题,所以在做定时器时候,出现了好奇怪的问题.比如,今次在理解预装载值时候出现问题,导致动态调整预装载值均无法得到自己预期的效果.我们可以看参考手册定时器这块的描述,或者上网找一些文章

关键字: stm8s 定时器溢出 重装载

Ⅰ、写在前面完事开头难,只要肯努力;师傅领进门,修行看个人;当你看到本文,说明你是幸运的,作者接下来推出的一系列STM8S教程,将助你踏入STM8S的世界。本文是STM8S教程的开始,写给刚入门STM8S的朋友。学习本文

关键字: gpio stm8s 基础知识

/********************************文件所用资源1.外部中断0、1 定时中断0、1 串口中断2.端口:P3.0,P3.1,P3.3,P3.4,P3.5********************...

关键字: c51程序 串口中断 外部中断 定时中断

一、 STM8S 外部中断进行唤醒先了解一下STM8S的中断资源再看看STM8S的中断管理。STM8S采用软件优先级和硬件优先级来控制一个中断的响应,先比较软件优先级只有当软件优先级一致时才会比较硬件优先级,由于硬件优先...

关键字: stm8s 窗口看门狗 中断唤醒 定时唤醒
关闭
关闭