U8glib将参数传递给“ int draw(String msg)”绘制函数

时间:2019-02-11 21:45:25

标签: arduino

在使用U8glib时,我试图将值传递给draw函数,但无法使其正常工作。 始终在“ 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 :(得分:2)

drawStr方法签名定义为:

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

并且没有从Arduino String类到const char *的隐式转换。

您应该可以使用String的char *方法来获得c_str()

lcd_1.drawStr(0, 10, sms.c_str());