I think this should be in the Github for the Nano ESP32 repository but I don't see a place to actually submit issues so I'm doing it here. On the Nano ESP32 this code generates about a dozen error messages that seem to come from ambiguous overloads of the Wire.requestFrom()
function. I've only looked at a few other boards as reference but the Nano ESP32 seems to have a lot more overloads of this function than others which I assume is why it's uniquely having this issues.
Example Code
#include "Wire.h"
void setup() { Wire.begin(); }
void loop() { uint8_t bytesReceived = Wire.requestFrom(0x55, 1, true); }
Wire.h (Nano ESP32)
size_t requestFrom(uint16_t address, size_t size, bool sendStop);
uint8_t requestFrom(uint16_t address, uint8_t size, bool sendStop);
uint8_t requestFrom(uint16_t address, uint8_t size, uint8_t sendStop);
size_t requestFrom(uint8_t address, size_t len, bool stopBit);
uint8_t requestFrom(uint16_t address, uint8_t size);
uint8_t requestFrom(uint8_t address, uint8_t size, uint8_t sendStop);
uint8_t requestFrom(uint8_t address, uint8_t size);
uint8_t requestFrom(int address, int size, int sendStop);
uint8_t requestFrom(int address, int size);
Warnings
C:\Users\Test\Test.ino: In function 'void loop()':
C:\Users\Test\Test.ino:9:57: warning: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
uint8_t bytesReceived = Wire.requestFrom(0x55, 1, true);
^
In file included from C:\Users\Test\Test.ino:1:
C:\Users\User\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\libraries\Wire\src/Wire.h:126:13: note: candidate 1: 'uint8_t TwoWire::requestFrom(int, int, int)'
uint8_t requestFrom(int address, int size, int sendStop);
^~~~~~~~~~~
C:\Users\User\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\libraries\Wire\src/Wire.h:122:12: note: candidate 2: 'size_t TwoWire::requestFrom(uint8_t, size_t, bool)'
size_t requestFrom(uint8_t address, size_t len, bool stopBit);
^~~~~~~~~~~
C:\Users\Test\Test.ino:9:57: warning: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
uint8_t bytesReceived = Wire.requestFrom(0x55, 1, true);
^
In file included from C:\Users\Test\Test.ino:1:
C:\Users\User\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\libraries\Wire\src/Wire.h:126:13: note: candidate 1: 'uint8_t TwoWire::requestFrom(int, int, int)'
uint8_t requestFrom(int address, int size, int sendStop);
^~~~~~~~~~~
C:\Users\User\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\libraries\Wire\src/Wire.h:120:13: note: candidate 2: 'uint8_t TwoWire::requestFrom(uint16_t, uint8_t, bool)'
uint8_t requestFrom(uint16_t address, uint8_t size, bool sendStop);
^~~~~~~~~~~
C:\Users\Test\Test.ino:9:57: warning: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
uint8_t bytesReceived = Wire.requestFrom(0x55, 1, true);
^
In file included from C:\Users\Test\Test.ino:1:
C:\Users\User\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\libraries\Wire\src/Wire.h:126:13: note: candidate 1: 'uint8_t TwoWire::requestFrom(int, int, int)'
uint8_t requestFrom(int address, int size, int sendStop);
^~~~~~~~~~~
C:\Users\User\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\libraries\Wire\src/Wire.h:119:12: note: candidate 2: 'size_t TwoWire::requestFrom(uint16_t, size_t, bool)'
size_t requestFrom(uint16_t address, size_t size, bool sendStop);
^~~~~~~~~~~
C:\Users\Test\Test.ino:9:57: warning: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
uint8_t bytesReceived = Wire.requestFrom(0x55, 1, true);
^
In file included from C:\Users\Test\Test.ino:1:
C:\Users\User\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\libraries\Wire\src/Wire.h:126:13: note: candidate 1: 'uint8_t TwoWire::requestFrom(int, int, int)'
uint8_t requestFrom(int address, int size, int sendStop);
^~~~~~~~~~~
C:\Users\User\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\libraries\Wire\src/Wire.h:122:12: note: candidate 2: 'size_t TwoWire::requestFrom(uint8_t, size_t, bool)'
size_t requestFrom(uint8_t address, size_t len, bool stopBit);
^~~~~~~~~~~
Wire.h (SAMD)
size_t requestFrom(uint8_t address, size_t quantity, bool stopBit);
size_t requestFrom(uint8_t address, size_t quantity);
(No warnings)