【问题标题】:Problem With Functions And Printing Function Values in arduino [closed]arduino中的函数和打印函数值问题[关闭]
【发布时间】:2019-01-17 05:18:14
【问题描述】:

首先,我要感谢帮助我的人 所以最近我正在做一个名为 Arduino 中的 Green House 的项目 然后我正要编写一个读取传感器的函数,以及一个在 function1 中打印该值的函数,但我遇到了一些问题, 这是我的代码 首先,我刚刚定义了每个引脚,然后 书面函数 这是函数和有问题的主要代码

void GetState();

void loop() {
  // put your main code here, to run repeatedly:
GetState();
PrintState();
delay(2000);
}
void PrintState()
{
Serial.println("TEMP ");
Serial.println(temp);
Serial.println("Rotobate Khak");
Serial.println(soilstate);
Serial.println("Humidity");
Serial.println(hum);
Serial.println("LDR === ");
Serial.println(LDRSTATE);
Serial.print("\n");
}
void GetState()
{
DHT.read11(Sensor);
int LDRSTATE=analogRead(LDR);
return LDRSTATE;
 int soilstate=analogRead(soil);
soilstate= map(soilstate,0,1023,100.00,0);  
return soilstate;
int temp=DHT.temperature;
return temp;
 int hum=DHT.humidity;
return hum;
}

and I get 'temp' was not declared in this scope error    

【问题讨论】:

  • 提问时,请将代码贴在问题本身中。不要发布链接,因为它们会消失
  • 决定哪种编程语言它们不能是这三种语言的混合。选择一个与实际代码匹配的代码,然后删除其他语言的“标签”

标签: c++ function arduino


【解决方案1】:

声明“int temp;”在顶部。所有其他变量都相同。不要在 GetState 中声明变量,只需使用它们。 从 Getstate() 中删除所有“返回”行。只需设置“temp=DHT.temperature;”设置变量就够了。

【讨论】:

    【解决方案2】:

    GetState() 函数放在之前 loop()(它被调用的地方)。或者,如果您愿意,可以在loop() 之前添加一个原型:

    void GetState();
    
    void loop() {
    ...
    

    【讨论】:

      【解决方案3】:


      认为您对编程很陌生。请尝试在其定义之上给出GetState()PrintState() 函数的原型。这是因为 C/C++ 编译器假定如果没有任何原型,它默认返回 int
      否则,您可以创建一个头文件,然后将该头文件包含在此程序中。

      【讨论】:

      • 谢谢你的意思是我必须这样做?temp = GetState(temp)?然后我打印出来?
      • PrintState()之前出现AA function definition is not allowed here before ‘}’ token错误
      • 请完整阅读此内容tutorialspoint.com/cprogramming。它将帮助您更清楚地了解如何编写 C 代码。您的 GetState() 函数不正确。您只能返回一个变量,并且您已将函数声明为 void 返回类型。接受其他参数作为指针并写入这些变量而不是这样做。
      猜你喜欢
      • 2022-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-03
      相关资源
      最近更新 更多