如何将对象发送到函数?

问题描述 投票:0回答:1

我无法将 outPut 中的代码显示在液晶屏幕上,我做错了什么或遗漏了什么?另外我也不能 100% 确定 lcd 是一个物体。这是针对带有 Arduino ide 的 Leonardo Arduino,但我也无法用 Java 和 C++ 解决这个问题。非常感谢任何帮助或指导。

#include <LiquidCrystal.h>
#include <Keyboard.h> // The main library for sending keystrokes.


//LCD pin to Arduino
const int pin_RS = 8; 
const int pin_EN = 9; 
const int pin_d4 = 4; 
const int pin_d5 = 5; 
const int pin_d6 = 6; 
const int pin_d7 = 7; 

const int pin_BL = 10; 

int y = 0;

int z = 0;

LiquidCrystal lcd( pin_RS,  pin_EN,  pin_d4,  pin_d5,  pin_d6,  pin_d7);

void setup() {

   Keyboard.begin();  // Initialise the library.
  
  lcd.begin(16, 2);

  lcd.setCursor(0,0);

  lcd.print("Electropeak.com");
  lcd.setCursor(0,1);
  lcd.print("Press Key:");
}

void loop() {
  Keyboard.press('f12');              // Press and hold the 'f12' key.
    delay(100);                       // Wait for the computer to register the press.
    Keyboard.releaseAll();            // Release both of the above keys.
    delay(1000);

  int x;
  x = analogRead (0);
  lcd.setCursor(10,1);
  output();
}

void outPut(){
  lcd.print("Does not show");
}
arduino arduino-ide
1个回答
0
投票

在本例中,由于

lcd
是一个全局变量,因此它在所有可以看到其声明的函数中都可用(这是显示的所有函数)。无需显式地将其发送到函数。

如果您确实想将对象传递给函数,您可以通过 copy 传递或通过 reference 传递(您想要这个作为

lcd
)。您可以以不同的方式编写该函数,如下所示:

void my_function(LiquidCrystal& lcd) {
    // now lcd is available to use below
    lcd.print("It works!");
}
© www.soinside.com 2019 - 2024. All rights reserved.