код выхода 1 нет соответствующей функции для вызова «LiquidCrystal::LiquidCrystal(int, int, int, int, int)»

Код ниже

// включаем код библиотеки:
#include "LiquidCrystal.h"
// инициализируем библиотеку с номерами интерфейсных контактов
LiquidCrystal lcd(2,4,5,6,7);

void setup()
{
// устанавливаем количество столбцов и строк ЖК-дисплея:
lcd.begin(16,2);
// Вывести сообщение на ЖК-дисплей.
lcd.print("hello");
}
void loop()
{
// устанавливаем курсор в столбец 0, строку 1
// (примечание: строка 1 — вторая строка, так как отсчет начинается с 0):
lcd.setCursor(0, 1);
// вывести количество секунд с момента сброса:
lcd.print(millis()/1000);
}

Выдает следующую ошибку:

exit status 1 no matching function for call to 'LiquidCrystal::LiquidCrystal(int, int, int, int, int)'

, 👍1


1 ответ


2

Похоже, вы пропустили параметр в вызове lcd(). Кажется, он принимает шесть аргументов, а не пять.

Из примера Blink в библиотеке LiquidCrystal:

// инициализируем библиотеку, связав любой необходимый вывод интерфейса ЖК-дисплея
// с номером контакта Arduino, к которому он подключен
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

Также, взгляните на определение библиотеки из LiquidCrystal.cpp:

class LiquidCrystal : public Print {
public:
  LiquidCrystal(uint8_t rs, uint8_t enable,
        uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
        uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7);
  LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable,
        uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
        uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7);
  LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable,
        uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3);
  LiquidCrystal(uint8_t rs, uint8_t enable,
        uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3);
...
}

Количество аргументов, принимаемых различными перегруженными конструкторами, составляет (соответственно):

  • 10
  • 11
  • 7
  • 6

Итак, ваше утверждение:

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

отсутствует параметр (или несколько), так как их всего пять.

Это объясняет, почему ошибка, которую вы видите, содержит пять int, перечисленных в списке параметров:

'LiquidCrystal::LiquidCrystal(int, int, int, int, int)'
,