在使用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);
}
答案 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());