首页 > 解决方案 > 未在此范围内声明创建循环

问题描述

我想制作一个重复 100 秒的循环,但我不断收到同样的错误,我感到非常沮丧,即使这是我不会注意到的最基本的事情,有人可以告诉我我是什么做错了吗?我真的很感激,谢谢。

void loop(void) {      
  for ( int i = 0; i <= 100; i++) {
    getFingerprintIDez();
    delay (50)            
  }
}

uint8_t getFingerprintID() {
  uint8_t attmpet = data.getImage();
  switch (attempt) {
    case FINGERPRINT_OK:
      break;
    case FINGERPRINT_NOFINGER:
      Serial.println("No fingerprint detected");
      return attempt;
    delay (500);
  }


  attempt = data.image2Tz();
  switch (attempt) {
    case FINGERPRINT_OK:
      Serial.println("Image converted");
      break;
    case FINGERPRINT_IMAGEMESS:
      Serial.println("Image too messy");
      return attempt;      
  }

  attempt = data.fingerFastSearch();
  if (attempt == FINGERPRINT_OK) {
    Serial.println("Found a print match!");
  } else if (attmpt == FINGERPRINT_NOTFOUND) {
    Serial.println("Did not find a match");
    return attempt;
  } 
  Serial.print("Found ID #"); Serial.print(data.fingerID); 
  Serial.print(" with confidence of "); Serial.println(data.confidence); 

  return data.fingerID;
}

int getFingerprintIDez() {
  uint8_t attempt = data.getImage();
  if (attempt != FINGERPRINT_OK)  return -1;

  attempt = data.image2Tz();
  if (attempt != FINGERPRINT_OK)  return -1;

  attempt = data.fingerFastSearch();
  if (attempt != FINGERPRINT_OK)  return -1;

  Serial.print("Found ID #"); Serial.print(data.fingerID); 
  Serial.print(" with confidence of "); Serial.println(data.confidence);
  return data.fingerID; 
  delay (1000);
}

我不断收到的信息是:

退出状态 1 'getFingerprintIDez' 未在此范围内声明

谢谢你们

标签: carduino

解决方案


一般来说,你的缩进是一团糟,这让你很难看出问题出在哪里。在我看来,这行:

int getFingerprintIDez()

可能是您遇到错误的罪魁祸首。我没有计算大括号,但我认为您的getFingerprintIDez()函数实际上可能是在函数内部定义的loop(),而 C 不允许这种事情。

因此,请注意格式化您的代码,以便将各个块小心地缩进正确的数量——C 不关心缩进,但它会让您更容易看到哪些块位于其他块中。如果需要,计算打开和关闭大括号,并确保在开始定义loop()之前结束的定义getFingerprintIDez()


推荐阅读