重载 'write(int)' 的调用不明确

call of overloaded 'write(int)' is ambiguous

现在,我正在尝试在我的 LCD 屏幕上打印一个特殊字符。出于某种原因-出现此消息:重载 'write(int)' 的调用不明确

我不知道这是什么意思,如果能帮上忙就好了。

代码:

#include <LiquidCrystal.h>

LiquidCrystal lcd(1, 2, 4, 5, 6, 7);

byte customChar[] = {
  B01110,
  B01110,
  B01110,
  B00100,
  B01110,
  B10101,
  B00100,
  B01010
};


void setup() {
  
   lcd.begin(16, 2);
  lcd.createChar(0, customChar);
  lcd.home();
  lcd.write(0);
}

void loop() {
  for(int position = 0; position < 13; position++) {
  lcd.scrollDisplayRight();
  delay(150);

  int state = digitalRead(8);
  if (state != 0) {
    if (state == HIGH) {

    lcd.clear();
    lcd.print("Hello!");
    }
  }
  }
}

有什么帮助吗?

LiquidCrystal 是 Print 的子类,它有两个 write() 方法: virtual size_t write(uint8_t);size_t write(const char *str)。如果参数为 0,则可以调用其中任何一个,因此它是不明确的。

尝试转换为您想要的类型:write(static_cast<uint8_t>(0))