重载 '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))
现在,我正在尝试在我的 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))