【问题标题】:My Arduino code doesn't upload to this error message and I can't find out why我的 Arduino 代码没有上传到这个错误信息,我不知道为什么
【发布时间】:2018-12-22 13:24:57
【问题描述】:

我正在尝试使用我的 arduino 制作一个反应游戏,它会在打开内置 LED 之前选择一个随机的时间长度,等待您按下按钮,然后给您一个快或慢的分数,问题是,当我尝试将其上传到 arduino(所有设置都正确)时,它会在某些行上出现一条错误消息,这些错误消息与另一个不同胸围的程序使用相同的东西和工作原理完全相同。

const int buttonPin = 4;
const int ledPin1 = 3;
const int ledPin2 = 2;
//~~~~~~~~~~##~~~~~~~~~~\\
int buttonState = 0;
int oldButtonState = 0;
int wait = 0;
bool isLoop = true;
//~~~~~~~~~~##~~~~~~~~~~\\
void setup() {
  Serial.begin(9600);
  pinMode(ledPin1, OUTPUT);
  pinMode(ledPin2, OUTPUT);
  pinMode(LED_BUILTIN, OUTPUT);
  pinMode(buttonPin, INPUT);
}
digitalWrite(LED_BUILTIN, LOW);
//~~~~~~~~~~##~~~~~~~~~~\\
void loop() {
  // put your main code here, to run repeatedly:
  randInt = random(500, 5001);
  delay(randInt);
  digitalWrite(LED_BUILTIN, HIGH);
  while (isLoop == true){
    buttonState = digitalRead(buttonPin);
    if (buttonState == LOW){
      isLoop = false;
    }
  }
  wait = millis() - randInt
  Serial.println(String(wait));
  if (wait <= 1000){
    digitalWrite(ledPin1, HIGH);
  }else{
    digitalWrite(ledPin2, HIGH);
  }
  delay(2000);
  digitalWrite(ledPin1, LOW);
  digitalWrite(ledPin2, LOW);
}

以上是我的代码,当我尝试上传时,我收到以下错误消息:

Arduino:1.8.5(Windows 商店 1.8.10.0)(Windows 10),板: “Arduino/Genuino Uno”

Reaction_Game:11: 错误:'Serial' 没有命名类型

Serial.begin(9600);

^

Reaction_Game:12:错误:预期的构造函数、析构函数或类型 '('令牌之前的转换

pinMode(ledPin1, OUTPUT);

      ^

Reaction_Game:13:错误:预期的构造函数、析构函数或类型 '('令牌之前的转换

pinMode(ledPin2, OUTPUT);

      ^

Reaction_Game:14:错误:预期的构造函数、析构函数或类型 '('令牌之前的转换

pinMode(LED_BUILTIN, OUTPUT);

      ^

Reaction_Game:15:错误:预期的构造函数、析构函数或类型 '('令牌之前的转换

pinMode(buttonPin, INPUT);

      ^

Reaction_Game:16: 错误:'}' 标记之前的预期声明

}

^

退出状态 1 'Serial' 未命名类型

此报告将包含“显示详细输出”的更多信息 在文件 -> 首选项中启用“编译期间”选项。

尽管这条确切的线:

Serial.begin(96000);

在另一个完美运行的程序中(同样的地方和一切)

有人可以帮我吗?什么都没找到,我几乎放弃了。

【问题讨论】:

    标签: arduino


    【解决方案1】:

    1 摆脱这些奇怪的无用 cmets

    //~~~~~~~~~~##~~~~~~~~~~\\
    

    2 这在 void 设置之外

    digitalWrite(LED_BUILTIN, LOW);
    

    3 这里缺少分号

    wait = millis() - randInt
    

    4 声明randInt,将int放在这一行之前

    randInt = random(500, 5001);
    

    5 提示 1

    while (isLoop == true){
    

    可以写成

    while (isLoop) {
    

    6 技巧 2,你不必长字符串化

    Serial.println(String(wait));
    

    【讨论】:

      【解决方案2】:

      以下行在 void setup 函数之外:

      digitalWrite(LED_BUILTIN, LOW);
      

      你还需要一个分号

      wait = millis() - randInt
      

      中声明int为数据类型
      randInt = random(500, 5001);
      

      【讨论】:

        猜你喜欢
        • 2018-12-19
        • 2022-10-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-18
        • 1970-01-01
        • 2016-04-18
        • 2022-12-06
        相关资源
        最近更新 更多