ESP8266之中断反复重启问题解决

编程入门 行业动态 更新时间:2024-10-25 12:15:50

ESP8266之中断反复<a href=https://www.elefans.com/category/jswz/34/1770429.html style=重启问题解决"/>

ESP8266之中断反复重启问题解决

在ESP8266的中断学习中,出现单片机不断重启的情况。其原因是没有使中断回调函数位于IRAM。因此在中断处理函数前加入ICACHE_RAM_ATTR 用于定义其属性为IRAM中方可解决此问题。


IRAM:internal ram 内部RAM,指的是集成到SoC内部的RAM

将D4设置为上升沿出发中断代码示例-基于VSCODE的Arduino环境

#include <Arduino.h>uint8_t count1 = 0;void interrupt4(void);  //函数声明void setup(void)  //初始化函数
{pinMode(D4,INPUT);    //D4模式设置attachInterrupt(D4,interrupt4,RISING);  //设置为上升沿中断pinMode(LED_BUILTIN,OUTPUT);  //灯脚设置为输出digitalWrite(LED_BUILTIN,HIGH);  //初始化为高电平,熄灭
}void loop(void)  //循环
{if(count1 == 5){digitalWrite(LED_BUILTIN,LOW);}else if(count1 == 10){digitalWrite(LED_BUILTIN,HIGH);}
}ICACHE_RAM_ATTR void interrupt4()  //中断函数
{count1++;if(count1>10){count1=0;digitalWrite(LED_BUILTIN,HIGH);}
}

更多推荐

ESP8266之中断反复重启问题解决

本文发布于:2023-11-16 15:19:19,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1626873.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:重启

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!