“宏名称必须是标识符”

时间:2017-07-08 18:14:49

标签: c++ arduino

我收到上面的错误消息,其代码如下所示。它适用于JSN-SR04T传感器。我正在使用带有IDE版本1.8.2.0的Arduino Uno。

我更改了密码并删除了所有空格,以防有任何嵌入字符。仍然得到错误。不知道还能做什么。有什么建议吗?

代码:

/*
 * Ultrasonic Sensor HC-SR04 and Arduino Tutorial
 *
 * Created by Dejan Nedelkovski,
 * www.HowToMechatronics.com
 *
*/.
#define ECHOPIN 10
#define TRIGPIN 9

const int TRIGPIN = 9;
const int ECHOPIN = 10;
long duration;
int distance;

void setup() {
  pinMode(TRIGPIN, OUTPUT);
  pinMode(ECHOPIN, INPUT);
  Serial.begin(9600);
}

void loop() {
  digitalWrite(TRIGPIN, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIGPIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIGPIN, LOW);
  duration = pulseIn(ECHOPIN, HIGH);
  distance= duration*0.034/2;
  Serial.print("Distance: ");
  Serial.println(distance);
}

2 个答案:

答案 0 :(得分:3)

如果this是您复制的原始代码,则可以看到没有宏定义。在您的示例中,有两个宏定义与以下const int声明具有相同的名称:

#define ECHOPIN 10
#define TRIGPIN 9

const int TRIGPIN = 9;
const int ECHOPIN = 10;

preprocessor会将每个ECHOPINTRIGPIN宏替换为其值。因此,在预处理器完成其工作后,上面的代码片段将如下所示:

const int 9 = 9;
const int 10 = 10;

从代码中删除宏或const int声明,它可能会有效。

答案 1 :(得分:2)

 * www.HowToMechatronics.com
 *
*/.

这个点在/之后做了什么?