my changes:
//#define BUFFER_LENGTH 136
#define BUFFER_LENGTH 1056
#if 0
uint8_t requestFrom(uint8_t address, uint8_t quantity, uint8_t sendStop);
uint8_t requestFrom(uint8_t address, uint8_t quantity, bool sendStop) {
return requestFrom(address, quantity, (uint8_t)(sendStop ? 1 : 0));
}
uint8_t requestFrom(uint8_t address, uint8_t quantity) {
return requestFrom(address, quantity, (uint8_t)1);
}
uint8_t requestFrom(int address, int quantity, int sendStop) {
return requestFrom((uint8_t)address, (uint8_t)quantity,
(uint8_t)(sendStop ? 1 : 0));
}
uint8_t requestFrom(int address, int quantity) {
return requestFrom((uint8_t)address, (uint8_t)quantity, (uint8_t)1);
}
uint8_t requestFrom(uint8_t addr, uint8_t qty, uint32_t iaddr, uint8_t n, uint8_t stop);
#endif
uint8_t requestFrom(uint8_t address, uint16_t quantity, uint8_t sendStop);
uint8_t requestFrom(uint8_t address, uint16_t quantity, bool sendStop) {
return requestFrom(address, quantity, (uint8_t)(sendStop ? 1 : 0));
}
uint8_t requestFrom(uint8_t address, uint16_t quantity) {
return requestFrom(address, quantity, (uint8_t)1);
}
uint8_t requestFrom(int address, int quantity, int sendStop) {
return requestFrom((uint8_t)address, (uint16_t)quantity,
(uint8_t)(sendStop ? 1 : 0));
}
uint8_t requestFrom(int address, int quantity) {
return requestFrom((uint8_t)address, (uint16_t)quantity, (uint8_t)1);
}
uint8_t requestFrom(uint8_t addr, uint16_t qty, uint32_t iaddr, uint8_t n, uint8_t stop);
//uint8_t rxBufferIndex = 0;
//uint8_t rxBufferLength = 0;
uint16_t rxBufferIndex = 0;
uint16_t rxBufferLength = 0;
//uint8_t txBufferIndex = 0;
//uint8_t txBufferLength = 0;
uint16_t txBufferIndex = 0;
uint16_t txBufferLength = 0;
//uint8_t TwoWire::requestFrom(uint8_t address, uint8_t length, uint8_t sendStop)
uint8_t TwoWire::requestFrom(uint8_t address, uint16_t length, uint8_t sendStop)
{
IMXRT_LPI2C_t* port = (IMXRT_LPI2C_t*)portAddr;
if (!wait_idle()) return 4;
address = (address & 0x7F) << 1;
if (length < 1) length = 1;
//ares mod
//if (length > 255) length = 255;
rxBufferIndex = 0;
rxBufferLength = 0;