I'm trying to compile a simple sketch using the 16x2 I2C. Problem is, I'm getting esoteric error messages in Wire.h, which is included by way of <LiquidCrystal_I2C.h>. I have not downloaded nor messed with that library. It is one of those things that worked fine in 1.8.6 and not working in 1.8.8. As it is, I'll have to proceed without an LCD for time being.
By the way, this is not a common problem. People always are having issues with Wire.h or it's dependencies not being present, not syntax errors.
Now I'm a little stressed out. I went to github and downloaded Wire.h, Wire.cpp, then twi.h, and now I'm still getting undeclared errors. Why post code that won't compile? I must have something set wrong with IDE...
C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src\Wire.cpp:45:36: error: conflicting declaration 'void (* TwoWire::user_onReceive)(int)'
void (*TwoWire::user_onReceive)(int);
^
In file included from C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src\Wire.cpp:30:0:
C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src\Wire.h:25:19: note: previous declaration as 'void (* TwoWire::user_onReceive)(size_t)'
static void (*user_onReceive)(size_t);
^
C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src\Wire.cpp:79:23: error: no 'void TwoWire::end()' member function declared in class 'TwoWire'
void TwoWire::end(void)
^
C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src\Wire.cpp:89:9: error: prototype for 'uint8_t TwoWire::requestFrom(uint8_t, uint8_t, uint32_t, uint8_t, uint8_t)' does not match any in class 'TwoWire'
uint8_t TwoWire::requestFrom(uint8_t address, uint8_t quantity, uint32_t iaddress, uint8_t isize, uint8_t sendStop)
^
In file included from C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src\Wire.cpp:30:0:
C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src\Wire.h:48:13: error: candidates are: uint8_t TwoWire::requestFrom(int, int, int)
uint8_t requestFrom(int, int, int);
^
C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src\Wire.h:47:13: error: uint8_t TwoWire::requestFrom(int, int)
uint8_t requestFrom(int, int);
^
C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src\Wire.h:46:13: error: uint8_t TwoWire::requestFrom(uint8_t, uint8_t, uint8_t)
uint8_t requestFrom(uint8_t, uint8_t, uint8_t);
^
C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src\Wire.h:45:13: error: uint8_t TwoWire::requestFrom(uint8_t, uint8_t)
uint8_t requestFrom(uint8_t, uint8_t);
^
C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src\Wire.h:42:12: error: size_t TwoWire::requestFrom(uint8_t, size_t, bool)
size_t requestFrom(uint8_t address, size_t size, bool sendStop);
^
C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src\Wire.cpp: In member function 'uint8_t TwoWire::requestFrom(uint8_t, uint8_t, uint8_t)':
C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src\Wire.cpp:123:100: error: no matching function for call to 'TwoWire::requestFrom(uint8_t, uint8_t, uint32_t, uint8_t, uint8_t)'
return requestFrom((uint8_t)address, (uint8_t)quantity, (uint32_t)0, (uint8_t)0, (uint8_t)sendStop);
^
In file included from C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src\Wire.cpp:30:0:
C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src\Wire.h:42:12: note: candidate: size_t TwoWire::requestFrom(uint8_t, size_t, bool)
size_t requestFrom(uint8_t address, size_t size, bool sendStop);
^
C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src\Wire.h:42:12: note: candidate expects 3 arguments, 5 provided
C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src\Wire.h:45:13: note: candidate: uint8_t TwoWire::requestFrom(uint8_t, uint8_t)
uint8_t requestFrom(uint8_t, uint8_t);
^
C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src\Wire.h:45:13: note: candidate expects 2 arguments, 5 provided
C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src\Wire.cpp:122:9: note: candidate: uint8_t TwoWire::requestFrom(uint8_t, uint8_t, uint8_t)
uint8_t TwoWire::requestFrom(uint8_t address, uint8_t quantity, uint8_t sendStop) {
^
C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src\Wire.cpp:122:9: note: candidate expects 3 arguments, 5 provided
In file included from C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src\Wire.cpp:30:0:
C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src\Wire.h:47:13: note: candidate: uint8_t TwoWire::requestFrom(int, int)
uint8_t requestFrom(int, int);
^
C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src\Wire.h:47:13: note: candidate expects 2 arguments, 5 provided
C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src\Wire.h:48:13: note: candidate: uint8_t TwoWire::requestFrom(int, int, int)
uint8_t requestFrom(int, int, int);
^
C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src\Wire.h:48:13: note: candidate expects 3 arguments, 5 provided
C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src\Wire.cpp: At global scope:
C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src\Wire.cpp:277:6: error: prototype for 'void TwoWire::onReceiveService(uint8_t*, int)' does not match any in class 'TwoWire'
void TwoWire::onReceiveService(uint8_t* inBytes, int numBytes)
^
In file included from C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src\Wire.cpp:30:0:
C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src\Wire.h:27:17: error: candidate is: static void TwoWire::onReceiveService(uint8_t*, size_t)
static void onReceiveService(uint8_t*, size_t);
^
C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src\Wire.cpp:317:6: error: prototype for 'void TwoWire::onReceive(void (*)(int))' does not match any in class 'TwoWire'
void TwoWire::onReceive( void (*function)(int) )
^
In file included from C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src\Wire.cpp:30:0:
C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src\Wire.h:56:10: error: candidate is: void TwoWire::onReceive(void (*)(size_t))
void onReceive( void (*)(size_t) );