每次运行下面的代码而不保存时,它都会编译。当我保存它时,我得到错误:
C:\ Program Files(x86)\ Arduino \ arduino-1.0.4 \ hardware \ arduino \ cores \ arduino / main.cpp:11:未定义引用`setup'
C:\ Program Files(x86)\ Arduino \ arduino-1.0.4 \ hardware \ arduino \ cores \ arduino / main.cpp:14:对'loop'的未定义引用
我已经尝试删除C:\Program Files (x86)
中的Arduino文件夹,下载并更新驱动程序。
其他程序似乎运行良好。我怎样才能解决它?什么是错的?
#define m_pin1 13
#define m_pin2 12
#define sensorPin 0
int val1;
int val2;
int avg;
int threshold;
int flipTimer = 100;
void setup(){
pinMode(m_pin1, OUTPUT);
pinMode(m_pin2, OUTPUT);
pinMode(sensorPin, INPUT);
Serial.begin(9600);
Serial.println("Sensor 1 Average:");
}
void loop(){
moisture_val();
}
int moisture_val(){
setSensorPolarity(true);
delay(flipTimer);
int val1 = analogRead(sensorPin);
delay(flipTimer);
setSensorPolarity(false);
delay(flipTimer);
int avg = reportLevels(val1,val2);
int val2 = 1023 - analogRead(sensorPin);
}
void setSensorPolarity(boolean flip){
if(flip){
digitalWrite(m_pin1, HIGH);
digitalWrite(m_pin2, LOW);
}
else{
digitalWrite(m_pin1, LOW);
digitalWrite(m_pin2, HIGH);
}
}
int reportLevels(int val1,int val2){
int avg = (val1 + val2) / 2;
return(avg);
}
答案 0 :(得分:3)
IDE希望在具有相同名称的文件夹中找到该文件。看看它们应该工作的文件和文件夹的结构。一旦名称匹配,问题就会消失。如果不是这样,请将IDE切换为“详细”以进行编译。这将允许您找到处理实际C源代码的临时文件夹。然后,您可以查看实际编译和链接的程序。这在找出真正的问题方面有很长的路要走。
在分析详细的编译器输出时,您可能还想查看Arduino build process的详细信息。
答案 1 :(得分:2)
arduino对您构建的草图的名称有非常具体的要求。如果您将其保存为“Main”或“main”,则需要将其保存在其他位置的其他名称下。
答案 2 :(得分:2)
我发现了问题: INO文件名不能与类名相同。
我有三个文件: DB1280.ino DB1280.cpp DB1280.h 编译错误出来了。 所以我更改了DB1280.ino名称。比如SimpleDB1280.ino。错误消失了。
答案 3 :(得分:0)
这里的问题相同。通过删除项目名称中的特殊字符来修复它。
答案 4 :(得分:0)
我已使用另存为更改了我的项目名称my-project
。这导致了您发布的错误。
要解决此问题,简化项目名称从项目名称中排除-
等特殊字符。
答案 5 :(得分:-1)
您必须只选择外部编辑器的首选项。 解释:当它选择你的页面时,arduino是灰色的,你可以编写程序。 因此,当您想从ardublock转换为arduino时,您的代码不被接受,这是正常的,因为ardublock不是arduino的外部编辑器。 取消选择,您的arduino页面开始为白色,您可以编写代码并从ardublock转移代码。我有同样的问题,我使用它,它运行..有趣:))