ESP8266 arduino nodemcu1.0开发板 使用中断函数attachInterrupt会重启-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4156|回复: 11

ESP8266 arduino nodemcu1.0开发板 使用中断函数attachInterrupt会重启

[复制链接]
发表于 2020-7-7 11:54 | 显示全部楼层 |阅读模式
ESP8266 arduino nodemcu1.0开发板 使用中断函数attachInterrupt会重启现象表现为:一旦运行中断代码就重启


pinMode(D4, INPUT_PULLUP);
attachInterrupt(D4, lowInterrupt, FALLING);



ICACHE_RAM_ATTR  void lowInterrupt()
{
//关门时用到的位置传感器外部中断函数-------------------------------------

}




8266_package_2.6.3
8266_package_2.7.1
都试过,依然重启
ICACHE_RAM_ATTR 也有添加,和没添加也试过依然不行。


也参考过这个帖子,但是没试过用回2.5.0版本,因为需要用blinker 物联网,要用2.6.x版本

https://www.arduino.cn/forum.php?mod=viewthread&tid=90869&fromuid=217681



发表于 2020-7-7 12:37 | 显示全部楼层
blinker lib dev3.0分支支持2.7.1 package
发表于 2020-7-7 13:35 | 显示全部楼层
官方文档关于中断的介绍:
https://arduino-esp8266.readthed ... nce.html#interrupts
 楼主| 发表于 2020-7-7 14:18 | 显示全部楼层
奈何col 发表于 2020-7-7 12:37
blinker lib dev3.0分支支持2.7.1 package

奈何大佬,试了用你说的这个分支和2.7.1 package,测试结果依然是会执行中断就重启

点评

看看官方文档,确认下中断中没有其他提到的问题  详情 回复 发表于 2020-7-7 17:29
发表于 2020-7-7 17:29 | 显示全部楼层
jianfengbeyond 发表于 2020-7-7 14:18
奈何大佬,试了用你说的这个分支和2.7.1 package,测试结果依然是会执行中断就重启
...

看看官方文档,确认下中断中没有其他提到的问题
发表于 2020-7-9 13:38 | 显示全部楼层
你好楼主,最近我也遇到了这个问题,请问你找到问题所在了吗?解决了吗?
 楼主| 发表于 2020-7-14 10:21 | 显示全部楼层
17865566707 发表于 2020-7-9 13:38
你好楼主,最近我也遇到了这个问题,请问你找到问题所在了吗?解决了吗? ...

无解决,我用while临时解决,缺点是占用CPU资源。你可以试试退回2.5.0版本试试,我没试过。
while ( now_time < old_time + 5000 )     //循环执行最长5000毫秒
    {
      kk = digitalRead(D4);      //把左门位置D4引脚的电平高低值赋予kk
      if (kk == LOW)
      {
        digitalWrite(D2, LOW);    //左门关闭停止
        digitalWrite(D7, LOW);    //关闭地锁电机
        analogWrite(D8, 512);     //开启地锁电机反转,加快落地锁。 50%功率输出是因为电机为3V电机用在了12V电压,降低输出功率保护驱动IC和电机。
        Blinker.delay(300);       //0.3秒落锁时间
        break;                    //跳出结束whinle循环
      }

顺便提一下,blinker lib dev3.0分支支持2.7.1 package,用blinker获取网络时间也会导致重启
发表于 2020-7-17 17:56 | 显示全部楼层
jianfengbeyond 发表于 2020-7-14 10:21
无解决,我用while临时解决,缺点是占用CPU资源。你可以试试退回2.5.0版本试试,我没试过。
while ( now_ ...

我的ESP-01S,2.7.1,3.0可以正常中断了
 楼主| 发表于 2020-7-22 17:11 | 显示全部楼层
17865566707 发表于 2020-7-17 17:56
我的ESP-01S,2.7.1,3.0可以正常中断了

目前怀疑是中断按键没有使用电容消抖的原因,导致中断短时间重复执行,呛死了单片机,因为我用STM32使用中断试过这个情况
发表于 2020-9-7 17:07 | 显示全部楼层
按照https://zhuanlan.zhihu.com/p/87324730

终于能用了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 08:50 , Processed in 0.117337 second(s), 17 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表