Open trawinlegacy opened 4 years ago
Can the Wire library function please match the following:
// // Originally, 'endTransmission' was an f(void) function. // It has been modified to take one parameter indicating // whether or not a STOP should be performed on the bus. // Calling endTransmission(false) allows a sketch to // perform a repeated start. // // WARNING: Nothing in the library keeps track of whether // the bus tenure has been properly ended with a STOP. It // is very possible to leave the bus in a hung state if // no call to endTransmission(true) is made. Some I2C // devices will behave oddly if they do not see a STOP. //
uint8_t TwoWire::endTransmission(uint8_t sendStop)
{
#if !defined(I2C_OTHER_FRAME)
UNUSED(sendStop);
#endif
int8_t ret = 4;
// check transfer options and store it in the I2C handle
#if defined(I2C_OTHER_FRAME)
if (sendStop == 0) {
_i2c.handle.XferOptions = I2C_OTHER_FRAME ;
} else {
_i2c.handle.XferOptions = I2C_OTHER_AND_LAST_FRAME;
}
#endif
if (_i2c.isMaster == 1) {
// transmit buffer (blocking)
switch (i2c_master_write(&_i2c, txAddress, txBuffer, txBufferLength)) {
case I2C_OK :
ret = 0; // Success
break;
case I2C_DATA_TOO_LONG :
ret = 1;
break;
case I2C_NACK_ADDR:
ret = 2;
break;
case I2C_NACK_DATA:
ret = 3;
break;
case I2C_TIMEOUT:
case I2C_BUSY:
case I2C_ERROR:
default:
ret = 4;
break;
}
// reset Tx buffer
resetTxBuffer();
// reset tx buffer iterator vars
txBufferIndex = 0;
txBufferLength = 0;
// indicate that we are done transmitting
transmitting = 0;
}
return ret;
}
// This provides backwards compatibility with the original // definition, and expected behaviour, of endTransmission //
uint8_t TwoWire::endTransmission(void)
{
return endTransmission((uint8_t)true);
}
As seen from the stm32duino/Arduino_Core_STM32 wire library.
Can the board library be made to match the Arduino Standard? I am trying to use a WIO LTE Cat. 1 to communicate with a Adafruit MPL3115A2 breakout board via I2C but I get the following errors:
C:\Users\liamt\Documents\Arduino\libraries\Adafruit_MPL3115A2_Library-master\Adafruit_MPL3115A2.cpp: In member function 'float Adafruit_MPL3115A2::getPressure()': C:\Users\liamt\Documents\Arduino\libraries\Adafruit_MPL3115A2_Library-master\Adafruit_MPL3115A2.cpp:95:30: error: no matching function for call to 'TwoWire::endTransmission(int)' _i2c->endTransmission(false); // end transmission ^ C:\Users\liamt\Documents\Arduino\libraries\Adafruit_MPL3115A2_Library-master\Adafruit_MPL3115A2.cpp:95:30: note: candidate is: In file included from C:\Users\liamt\Documents\Arduino\libraries\Adafruit_MPL3115A2_Library-master\Adafruit_MPL3115A2.cpp:33:0: C:\Users\liamt\AppData\Local\Arduino15\packages\Seeeduino\hardware\Seeed_STM32F4\1.2.5\libraries\Wire/Wire.h:85:11: note: uint8 TwoWire::endTransmission() uint8 endTransmission(void); ^ C:\Users\liamt\AppData\Local\Arduino15\packages\Seeeduino\hardware\Seeed_STM32F4\1.2.5\libraries\Wire/Wire.h:85:11: note: candidate expects 0 arguments, 1 provided C:\Users\liamt\Documents\Arduino\libraries\Adafruit_MPL3115A2_Library-master\Adafruit_MPL3115A2.cpp: In member function 'float Adafruit_MPL3115A2::getAltitude()': C:\Users\liamt\Documents\Arduino\libraries\Adafruit_MPL3115A2_Library-master\Adafruit_MPL3115A2.cpp:134:30: error: no matching function for call to 'TwoWire::endTransmission(int)' _i2c->endTransmission(false); // end transmission ^ C:\Users\liamt\Documents\Arduino\libraries\Adafruit_MPL3115A2_Library-master\Adafruit_MPL3115A2.cpp:134:30: note: candidate is: In file included from C:\Users\liamt\Documents\Arduino\libraries\Adafruit_MPL3115A2_Library-master\Adafruit_MPL3115A2.cpp:33:0: C:\Users\liamt\AppData\Local\Arduino15\packages\Seeeduino\hardware\Seeed_STM32F4\1.2.5\libraries\Wire/Wire.h:85:11: note: uint8 TwoWire::endTransmission() uint8 endTransmission(void); ^ C:\Users\liamt\AppData\Local\Arduino15\packages\Seeeduino\hardware\Seeed_STM32F4\1.2.5\libraries\Wire/Wire.h:85:11: note: candidate expects 0 arguments, 1 provided C:\Users\liamt\Documents\Arduino\libraries\Adafruit_MPL3115A2_Library-master\Adafruit_MPL3115A2.cpp: In member function 'void Adafruit_MPL3115A2::setSeaPressure(float)': C:\Users\liamt\Documents\Arduino\libraries\Adafruit_MPL3115A2_Library-master\Adafruit_MPL3115A2.cpp:157:30: error: no matching function for call to 'TwoWire::endTransmission(int)' _i2c->endTransmission(false); ^ C:\Users\liamt\Documents\Arduino\libraries\Adafruit_MPL3115A2_Library-master\Adafruit_MPL3115A2.cpp:157:30: note: candidate is: In file included from C:\Users\liamt\Documents\Arduino\libraries\Adafruit_MPL3115A2_Library-master\Adafruit_MPL3115A2.cpp:33:0: C:\Users\liamt\AppData\Local\Arduino15\packages\Seeeduino\hardware\Seeed_STM32F4\1.2.5\libraries\Wire/Wire.h:85:11: note: uint8 TwoWire::endTransmission() uint8 endTransmission(void); ^ C:\Users\liamt\AppData\Local\Arduino15\packages\Seeeduino\hardware\Seeed_STM32F4\1.2.5\libraries\Wire/Wire.h:85:11: note: candidate expects 0 arguments, 1 provided C:\Users\liamt\Documents\Arduino\libraries\Adafruit_MPL3115A2_Library-master\Adafruit_MPL3115A2.cpp: In member function 'float Adafruit_MPL3115A2::getTemperature()': C:\Users\liamt\Documents\Arduino\libraries\Adafruit_MPL3115A2_Library-master\Adafruit_MPL3115A2.cpp:177:30: error: no matching function for call to 'TwoWire::endTransmission(int)' _i2c->endTransmission(false); // end transmission ^ C:\Users\liamt\Documents\Arduino\libraries\Adafruit_MPL3115A2_Library-master\Adafruit_MPL3115A2.cpp:177:30: note: candidate is: In file included from C:\Users\liamt\Documents\Arduino\libraries\Adafruit_MPL3115A2_Library-master\Adafruit_MPL3115A2.cpp:33:0: C:\Users\liamt\AppData\Local\Arduino15\packages\Seeeduino\hardware\Seeed_STM32F4\1.2.5\libraries\Wire/Wire.h:85:11: note: uint8 TwoWire::endTransmission() uint8 endTransmission(void); ^ C:\Users\liamt\AppData\Local\Arduino15\packages\Seeeduino\hardware\Seeed_STM32F4\1.2.5\libraries\Wire/Wire.h:85:11: note: candidate expects 0 arguments, 1 provided C:\Users\liamt\Documents\Arduino\libraries\Adafruit_MPL3115A2_Library-master\Adafruit_MPL3115A2.cpp: In member function 'uint8_t Adafruit_MPL3115A2::read8(uint8_t)': C:\Users\liamt\Documents\Arduino\libraries\Adafruit_MPL3115A2_Library-master\Adafruit_MPL3115A2.cpp:204:30: error: no matching function for call to 'TwoWire::endTransmission(int)' _i2c->endTransmission(false); // end transmission ^ C:\Users\liamt\Documents\Arduino\libraries\Adafruit_MPL3115A2_Library-master\Adafruit_MPL3115A2.cpp:204:30: note: candidate is: In file included from C:\Users\liamt\Documents\Arduino\libraries\Adafruit_MPL3115A2_Library-master\Adafruit_MPL3115A2.cpp:33:0: C:\Users\liamt\AppData\Local\Arduino15\packages\Seeeduino\hardware\Seeed_STM32F4\1.2.5\libraries\Wire/Wire.h:85:11: note: uint8 TwoWire::endTransmission() uint8 endTransmission(void); ^ C:\Users\liamt\AppData\Local\Arduino15\packages\Seeeduino\hardware\Seeed_STM32F4\1.2.5\libraries\Wire/Wire.h:85:11: note: candidate expects 0 arguments, 1 provided C:\Users\liamt\Documents\Arduino\libraries\Adafruit_MPL3115A2_Library-master\Adafruit_MPL3115A2.cpp: In member function 'void Adafruit_MPL3115A2::write8(uint8_t, uint8_t)': C:\Users\liamt\Documents\Arduino\libraries\Adafruit_MPL3115A2_Library-master\Adafruit_MPL3115A2.cpp:222:30: error: no matching function for call to 'TwoWire::endTransmission(int)' _i2c->endTransmission(false); // end transmission ^ C:\Users\liamt\Documents\Arduino\libraries\Adafruit_MPL3115A2_Library-master\Adafruit_MPL3115A2.cpp:222:30: note: candidate is: In file included from C:\Users\liamt\Documents\Arduino\libraries\Adafruit_MPL3115A2_Library-master\Adafruit_MPL3115A2.cpp:33:0: C:\Users\liamt\AppData\Local\Arduino15\packages\Seeeduino\hardware\Seeed_STM32F4\1.2.5\libraries\Wire/Wire.h:85:11: note: uint8 TwoWire::endTransmission() uint8 endTransmission(void); ^ C:\Users\liamt\AppData\Local\Arduino15\packages\Seeeduino\hardware\Seeed_STM32F4\1.2.5\libraries\Wire/Wire.h:85:11: note: candidate expects 0 arguments, 1 provided exit status 1 Error compiling for board Wio Tracker LTE.
According to Adafruit the board library needs to be made to meet Arduino Standard.
Board Details: https://wiki.seeedstudio.com/Wio_LTE_Cat.1/
Board Library: https://github.com/Seeed-Studio/stm32f4ArduinoCore
Code Libraries: https://github.com/SeeedJP/WioLTEforArduino https://github.com/adafruit/Adafruit_MPL3115A2_Library