U8glib передает параметр в функцию рисования "int draw (String msg)" - PullRequest
0 голосов
/ 12 февраля 2019

При использовании U8glib я пытаюсь передать значение в функцию рисования, но не могу заставить его работать.Всегда получайте сообщение об ошибке в строке "lcd_1.drawStr (0, 10, sms);"нет соответствующей функции для вызова 'U8GLIB_SSD1306_128X32 :: drawStr (int, int, String &)' Возможно ли вообще использовать переменную для "lcd_1.drawStr (0, 10, sms)";?Пробовал то же самое, используя Adafruit lib, и это работает.Спасибо

#include "U8glib.h"
U8GLIB_SSD1306_128X32 lcd_1(U8G_I2C_OPT_FAST);

void setup() {
  lcd_1.setFont(u8g_font_unifont);
}

int draw(String sms){
          lcd_1.drawStr( 0, 10, sms);
}
void loop() {
   lcd_1.firstPage(); 
      do {
        draw("boo")
        } while( lcd_1.nextPage() );
   delay(2000);
}

1 Ответ

0 голосов
/ 12 февраля 2019

Подпись метода drawStr определяется как:

u8g_uint_t drawStr(u8g_uint_t x, u8g_uint_t y, const char *s)

И не существует неявного приведения из класса Arduino String в const char *.

Youдолжен иметь возможность получить char * с помощью метода c_str() String:

lcd_1.drawStr(0, 10, sms.c_str());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...