E:\arduinofile\arduinofile.ino: In function 'void loop()': E:\arduinofile\arduinofile.ino:19:19: error: expected primary-expression before '.' token int ret = dht11.read(); ^ E:\arduinofile\arduinofile.ino:29:24: error: 'AI2' was not declared in this scope float m1= analogRead(AI2); ^~~ E:\arduinofile\arduinofile.ino:29:24: note: suggested alternative: 'A2' float m1= analogRead(AI2); ^~~ A2 E:\arduinofile\arduinofile.ino:30:24: error: 'AI3' was not declared in this scope float m2= analogRead(AI3); ^~~ E:\arduinofile\arduinofile.ino:30:24: note: suggested alternative: 'A3' float m2= analogRead(AI3); ^~~ A3 E:\arduinofile\arduinofile.ino:33:30: error: expected primary-expression before '.' token Serial.print((float)dht11.getTemperature(), 2); ^ E:\arduinofile\arduinofile.ino:35:31: error: expected primary-expression before '.' token Serial.print((float)dht11.getHumidity(), 2); ^ exit status 1 Compilation error: expected primary-expression before '.' token
时间: 2024-02-14 16:03:25 浏览: 179
这个错误通常是因为你的代码中使用了错误的语法或语法错误。具体来说,有以下几个可能的原因:
1. 在调用函数时,你没有使用正确的语法。在 Arduino 中,调用函数时需要使用点运算符(`.`)或箭头运算符(`->`),具体取决于你是使用对象还是指针来调用函数。例如:
```
// 使用对象调用函数
dht11.read();
float temp = dht11.getTemperature();
// 使用指针调用函数
DHT11 *ptr = &dht11;
ptr->read();
float temp = ptr->getTemperature();
```
2. 你使用了错误的变量名或常量名。例如,你可能在代码中使用了 `AI2` 或 `AI3`,但实际上应该是使用 `A2` 或 `A3`。
3. 你的代码中缺少必要的头文件或库文件。例如,在使用 `dht11` 对象时,你需要包含 `DHT11.h` 头文件。在使用 `Serial` 对象时,你需要包含 `SoftwareSerial.h` 或 `HardwareSerial.h` 头文件。
检查以上几个问题,修改错误的语法或名称,并确保你的代码中包含了必要的头文件和库文件,即可解决编译错误。
相关问题
E:\program\part1\part\part.ino: In function 'void loop()': E:\program\part1\part\part.ino:44:1: error: a function-definition is not allowed here before '{' token { ^ E:\program\part1\part\part.ino:56:1: error: expected '}' at end of input } ^ exit status 1 Compilation error: a function-definition is not allowed here before '{' token
这个错误是因为在代码的最后缺少了一个关闭的大括号,导致编译器无法识别函数定义的结束位置。请在代码的最后添加一个大括号来关闭set_abc_4函数的定义,如下所示:
```cpp
/*在4个屏上显示26个字母:*/
void set_abc_4(byte *abc[26])
{
init_abc(); /*初始化字母指针数组*/
init_ABC();
for (int i = 0, addr = 3; i < 26; ++i)
{
lc.set_num(addr , abc[i]); /*显示函数*/
delay(800);
if(addr == 0)
addr = 3;
else
--addr;
}
}
} // 添加这个大括号来关闭set_abc_4函数的定义
```
这样做可以修复编译错误并使代码能够顺利编译。
:\Users\26041\Desktop\sketch_jun4a\sketch_jun4a.ino: In function 'void setup()': C:\Users\26041\Desktop\sketch_jun4a\sketch_jun4a.ino:21:5: error: expected ';' before 'servo' servo detach;
这看起来是一个Arduino的编程错误。在第21行,代码中使用了一个名为"servo"的对象,但是它没有被正确地声明或初始化。正确的语法应该是在"servo"后面加上一对括号,例如"servo()",以初始化该对象。另外,请注意,在调用"detach"函数时,应该使用括号,即"detach()"。因此,可以尝试修改代码如下:
```C++
#include <Servo.h>
Servo servo;
void setup() {
servo.attach(9);
}
void loop() {
// do something
}
```
这应该可以解决该错误。
阅读全文