Skip to content

"no matching function" error in verifying #25

@limmers2015

Description

@limmers2015

Hello everyone:

I am attempting to use this library with Adafruit's "Adafruit_GFX" and "Adafruit_SSD1306" libraries to run a display.

When I attempt to verify the sketch, the following console output/error message is given:

`/home/builder/opt/arduino-builder/arduino-builder -compile -core-api-version 10611 -hardware /home/builder/opt/arduino-builder/hardware -hardware /home/builder/.arduino15/packages -tools /home/builder/opt/arduino-builder/tools -tools /home/builder/.arduino15/packages -built-in-libraries /home/builder/opt/libraries/latest -logger humantags -fqbn arduino:avr:micro -build-cache /tmp -build-path /tmp/707953622/build -verbose -prefs runtime.tools.sketchUploader.path=/home/builder/.arduino15/packages/Intel/tools/sketchUploader/1.6.2+1.0 -prefs runtime.tools.arduino101load.path=/home/builder/.arduino15/packages/Intel/tools/arduino101load/2.0.1 -prefs runtime.tools.linuxuploader.path=/home/builder/.arduino15/packages/arduino/tools/linuxuploader/1.5.1 -prefs runtime.tools.nrf5x-cl-tools.path=/home/builder/.arduino15/packages/arduino/tools/nrf5x-cl-tools/9.3.1 -prefs runtime.tools.mkspiffs.path=/home/builder/.arduino15/packages/esp8266/tools/mkspiffs/2.5.0-3-20ed2b9 -prefs runtime.tools.xtensa-lx106-elf-gcc.path=/home/builder/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-3-20ed2b9 -prefs runtime.tools.i586-poky-linux-uclibc.path=/home/builder/.arduino15/packages/Intel/tools/i586-poky-linux-uclibc/1.6.2+1.0 -prefs runtime.tools.openocd.path=/home/builder/.arduino15/packages/arduino/tools/openocd/0.10.0-arduino9 -prefs runtime.tools.x86-linux-gcc.path=/home/builder/.arduino15/packages/arduino/tools/x86-linux-gcc/7.2.0 -prefs runtime.tools.arduinoOTA.path=/home/builder/.arduino15/packages/arduino/tools/arduinoOTA/1.2.1 -prefs runtime.tools.core2-32-poky-linux.path=/home/builder/.arduino15/packages/Intel/tools/core2-32-poky-linux/1.6.2+1.0 -prefs runtime.tools.arc-elf32.path=/home/builder/.arduino15/packages/Intel/tools/arc-elf32/1.6.9+1.0.1 -prefs runtime.tools.avr-gcc.path=/home/builder/.arduino15/packages/arduino/tools/avr-gcc/5.4.0-atmel3.6.1-arduino2 -prefs runtime.tools.dfu-util.path=/home/builder/.arduino15/packages/arduino/tools/dfu-util/0.9.0-arduino1 -prefs runtime.tools.flashpack.path=/home/builder/.arduino15/packages/Intel/tools/flashpack/2.0.0 -prefs runtime.tools.arm-none-eabi-gcc.path=/home/builder/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/7-2017q4 -prefs runtime.tools.bossac.path=/home/builder/.arduino15/packages/industruino/tools/bossac/1.7.0-industruino -prefs runtime.tools.CMSIS.path=/home/builder/.arduino15/packages/arduino/tools/CMSIS/4.5.0 -prefs runtime.tools.arm-linux-gcc.path=/home/builder/.arduino15/packages/arduino/tools/arm-linux-gcc/4.9.3 -prefs runtime.tools.avrdude.path=/home/builder/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino14 -prefs runtime.tools.esptool.path=/home/builder/.arduino15/packages/esp8266/tools/esptool/2.5.0-3-20ed2b9 -prefs runtime.tools.CMSIS-Atmel.path=/home/builder/.arduino15/packages/arduino/tools/CMSIS-Atmel/1.2.0 -libraries /tmp/707953622/custom -libraries /tmp/707953622/pinned /tmp/707953622/ssd1306_128x64_i2c_copy

Multiple libraries were found for "Adafruit_SSD1306.h"

Used: /home/builder/opt/libraries/latest/adafruit_ssd1306_wemos_mini_oled_1_1_2

Not used: /home/builder/opt/libraries/latest/adafruit_ssd1306_2_0_1

Using library adafruit_gfx_library_1_6_1 at version 1.6.1 in folder: /home/builder/opt/libraries/latest/adafruit_gfx_library_1_6_1

Using library adafruit_ssd1306_wemos_mini_oled_1_1_2 at version 1.1.2 in folder: /home/builder/opt/libraries/latest/adafruit_ssd1306_wemos_mini_oled_1_1_2

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino: In function 'void setup()':

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino:62:76: error: no matching function for call to 'Adafruit_SSD1306::Adafruit_SSD1306(int, int, SoftwareWire*, int)'

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &myWire, OLED_RESET);

^

In file included from /tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino:24:0:

/home/builder/opt/libraries/latest/adafruit_ssd1306_wemos_mini_oled_1_1_2/Adafruit_SSD1306.h:150:3: note: candidate: Adafruit_SSD1306::Adafruit_SSD1306(int8_t)

Adafruit_SSD1306(int8_t RST = -1);

^

/home/builder/opt/libraries/latest/adafruit_ssd1306_wemos_mini_oled_1_1_2/Adafruit_SSD1306.h:150:3: note: candidate expects 1 argument, 4 provided

/home/builder/opt/libraries/latest/adafruit_ssd1306_wemos_mini_oled_1_1_2/Adafruit_SSD1306.h:149:3: note: candidate: Adafruit_SSD1306::Adafruit_SSD1306(int8_t, int8_t, int8_t)

Adafruit_SSD1306(int8_t DC, int8_t RST, int8_t CS);

^

/home/builder/opt/libraries/latest/adafruit_ssd1306_wemos_mini_oled_1_1_2/Adafruit_SSD1306.h:149:3: note: candidate expects 3 arguments, 4 provided

/home/builder/opt/libraries/latest/adafruit_ssd1306_wemos_mini_oled_1_1_2/Adafruit_SSD1306.h:148:3: note: candidate: Adafruit_SSD1306::Adafruit_SSD1306(int8_t, int8_t, int8_t, int8_t, int8_t)

Adafruit_SSD1306(int8_t SID, int8_t SCLK, int8_t DC, int8_t RST, int8_t CS);

^

/home/builder/opt/libraries/latest/adafruit_ssd1306_wemos_mini_oled_1_1_2/Adafruit_SSD1306.h:148:3: note: candidate expects 5 arguments, 4 provided

/home/builder/opt/libraries/latest/adafruit_ssd1306_wemos_mini_oled_1_1_2/Adafruit_SSD1306.h:146:7: note: candidate: constexpr Adafruit_SSD1306::Adafruit_SSD1306(const Adafruit_SSD1306&)

class Adafruit_SSD1306 : public Adafruit_GFX {

^

/home/builder/opt/libraries/latest/adafruit_ssd1306_wemos_mini_oled_1_1_2/Adafruit_SSD1306.h:146:7: note: candidate expects 1 argument, 4 provided

/home/builder/opt/libraries/latest/adafruit_ssd1306_wemos_mini_oled_1_1_2/Adafruit_SSD1306.h:146:7: note: candidate: constexpr Adafruit_SSD1306::Adafruit_SSD1306(Adafruit_SSD1306&&)

/home/builder/opt/libraries/latest/adafruit_ssd1306_wemos_mini_oled_1_1_2/Adafruit_SSD1306.h:146:7: note: candidate expects 1 argument, 4 provided

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino:65:20: error: could not convert 'display.Adafruit_SSD1306::begin(2u, 61u, true)' from 'void' to 'bool'

if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3D)) { // Address 0x3D for 128x64

^

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino:65:47: error: in argument to unary !

if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3D)) { // Address 0x3D for 128x64

^

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino:79:29: error: 'SSD1306_WHITE' was not declared in this scope

display.drawPixel(10, 10, SSD1306_WHITE);

^

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino: In function 'void testdrawline()':

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino:131:3: error: 'display' was not declared in this scope

display.clearDisplay(); // Clear display buffer

^

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino:134:51: error: 'SSD1306_WHITE' was not declared in this scope

display.drawLine(0, 0, i, display.height()-1, SSD1306_WHITE);

^

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino:139:50: error: 'SSD1306_WHITE' was not declared in this scope

display.drawLine(0, 0, display.width()-1, i, SSD1306_WHITE);

^

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino:148:51: error: 'SSD1306_WHITE' was not declared in this scope

display.drawLine(0, display.height()-1, i, 0, SSD1306_WHITE);

^

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino:153:67: error: 'SSD1306_WHITE' was not declared in this scope

display.drawLine(0, display.height()-1, display.width()-1, i, SSD1306_WHITE);

^

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino:162:67: error: 'SSD1306_WHITE' was not declared in this scope

display.drawLine(display.width()-1, display.height()-1, i, 0, SSD1306_WHITE);

^

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino:167:67: error: 'SSD1306_WHITE' was not declared in this scope

display.drawLine(display.width()-1, display.height()-1, 0, i, SSD1306_WHITE);

^

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino:176:50: error: 'SSD1306_WHITE' was not declared in this scope

display.drawLine(display.width()-1, 0, 0, i, SSD1306_WHITE);

^

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino:181:67: error: 'SSD1306_WHITE' was not declared in this scope

display.drawLine(display.width()-1, 0, i, display.height()-1, SSD1306_WHITE);

^

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino: In function 'void testdrawrect()':

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino:190:3: error: 'display' was not declared in this scope

display.clearDisplay();

^

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino:193:71: error: 'SSD1306_WHITE' was not declared in this scope

display.drawRect(i, i, display.width()-2i, display.height()-2i, SSD1306_WHITE);

^

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino: In function 'void testfillrect()':

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino:202:3: error: 'display' was not declared in this scope

display.clearDisplay();

^

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino:206:71: error: 'SSD1306_INVERSE' was not declared in this scope

display.fillRect(i, i, display.width()-i2, display.height()-i2, SSD1306_INVERSE);

^

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino: In function 'void testdrawcircle()':

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino:215:3: error: 'display' was not declared in this scope

display.clearDisplay();

^

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino:218:66: error: 'SSD1306_WHITE' was not declared in this scope

display.drawCircle(display.width()/2, display.height()/2, i, SSD1306_WHITE);

^

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino: In function 'void testfillcircle()':

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino:227:3: error: 'display' was not declared in this scope

display.clearDisplay();

^

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino:231:70: error: 'SSD1306_INVERSE' was not declared in this scope

display.fillCircle(display.width() / 2, display.height() / 2, i, SSD1306_INVERSE);

^

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino: In function 'void testdrawroundrect()':

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino:240:3: error: 'display' was not declared in this scope

display.clearDisplay();

^

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino:244:27: error: 'SSD1306_WHITE' was not declared in this scope

display.height()/4, SSD1306_WHITE);

^

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino: In function 'void testfillroundrect()':

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino:253:3: error: 'display' was not declared in this scope

display.clearDisplay();

^

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino:258:27: error: 'SSD1306_INVERSE' was not declared in this scope

display.height()/4, SSD1306_INVERSE);

^

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino: In function 'void testdrawtriangle()':

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino:267:3: error: 'display' was not declared in this scope

display.clearDisplay();

^

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino:273:50: error: 'SSD1306_WHITE' was not declared in this scope

display.width()/2+i, display.height()/2+i, SSD1306_WHITE);

^

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino: In function 'void testfilltriangle()':

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino:282:3: error: 'display' was not declared in this scope

display.clearDisplay();

^

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino:289:50: error: 'SSD1306_INVERSE' was not declared in this scope

display.width()/2+i, display.height()/2+i, SSD1306_INVERSE);

^

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino: In function 'void testdrawchar()':

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino:298:3: error: 'display' was not declared in this scope

display.clearDisplay();

^

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino:301:24: error: 'SSD1306_WHITE' was not declared in this scope

display.setTextColor(SSD1306_WHITE); // Draw white text

^

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino: In function 'void testdrawstyles()':

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino:317:3: error: 'display' was not declared in this scope

display.clearDisplay();

^

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino:320:24: error: 'SSD1306_WHITE' was not declared in this scope

display.setTextColor(SSD1306_WHITE); // Draw white text

^

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino:324:24: error: 'SSD1306_BLACK' was not declared in this scope

display.setTextColor(SSD1306_BLACK, SSD1306_WHITE); // Draw 'inverse' text

^

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino: In function 'void testscrolltext()':

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino:336:3: error: 'display' was not declared in this scope

display.clearDisplay();

^

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino:339:24: error: 'SSD1306_WHITE' was not declared in this scope

display.setTextColor(SSD1306_WHITE);

^

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino: In function 'void testdrawbitmap()':

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino:363:3: error: 'display' was not declared in this scope

display.clearDisplay();

^

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino: In function 'void testanimate(const uint8_t*, uint8_t, uint8_t)':

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino:382:47: error: 'display' was not declared in this scope

icons[f][XPOS] = random(1 - LOGO_WIDTH, display.width());

^

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino:394:5: error: 'display' was not declared in this scope

display.clearDisplay(); // Clear the display buffer

^

/tmp/707953622/ssd1306_128x64_i2c_copy/ssd1306_128x64_i2c_copy.ino:398:72: error: 'SSD1306_WHITE' was not declared in this scope

display.drawBitmap(icons[f][XPOS], icons[f][YPOS], bitmap, w, h, SSD1306_WHITE);

^

exit status 1`

This is my full sketch:

https://create.arduino.cc/editor/limmers2015/3689df0c-3602-491f-beb1-59837286d2bd/preview

Does anyone know what am I doing wrong/missing? I have no ideas.

The really odd thing is that the same kind of error is thrown with the regular "Wire" library.

Thanks in advance for any assistance!

EDIT: I just realized that I forgot to say what I am using for hardware. Arduino Micro, programmed via the online IDE.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions