You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

M-Duino 21开发板I0_5中断引脚提示未声明编译报错问题求助

错误原因与修复方案
  • 确认开发板配置正确
    编译前必须在Arduino IDE中安装Industrial Shield官方的M-Duino系列板级支持包,且在「工具>开发板」选项中选中M-duino 21,普通Arduino核心未定义I0_5这类工业板专属引脚别名,选择错误就会触发未声明错误。
  • 补充缺失的头文件
    大部分版本的M-Duino板级支持包要求代码开头引入核心头文件,引脚别名宏全部定义在该文件内:
#include <Mduino.h>
  • 备用替代方案
    如果完成上述两步仍报错,可以直接用I0_5对应的物理引脚编号代替别名,M-duino 21的I0_5对应数字引脚编号为21,直接修改宏定义即可:
#define INTERRUPT 21

另外你当前代码遗漏了串口初始化逻辑,调用Serial.println前需要先初始化串口,否则不会有输出,修正后的完整代码如下:

// 使用引脚别名需引入该头文件
#include <Mduino.h>
// 引脚定义二选一即可
#define INTERRUPT I0_5
// #define INTERRUPT 21

volatile bool state = false;

void setup() {
  Serial.begin(9600);
  pinMode(INTERRUPT, INPUT_PULLUP);
  attachInterrupt(digitalPinToInterrupt(INTERRUPT), function_call_back, CHANGE);
}

void loop() {
  if (state == true){
    Serial.println("Interrupt activated");
    state = false;
  }
}

void function_call_back(){
  state = true;
}

内容的提问来源于stack exchange,提问作者JTouchLogic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 02:54:04