已解决
ESP8266之中断反复重启问题解决
来自网友在路上 177877提问 提问时间:2023-11-05 08:44:31阅读次数: 77
最佳答案 问答题库778位专家为你答疑解惑
在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);}
}
查看全文
99%的人还看了
相似问题
猜你感兴趣
版权申明
本文"ESP8266之中断反复重启问题解决":http://eshow365.cn/6-32571-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: 英语语音识别,语言评测,语音打分实践与代码实现
- 下一篇: 云计算的思想、突破、产业实践