Чтение байта по i2c для ESP32

Господа, помогите тупильнику понять, почему на Ардуино НАНО этот код нормально читает значения из памяти, а на ESP32 какую то хрень! всегда получаю 255

#include <Wire.h>

void setup() {
  Serial.begin(115200);
  delay(1000);
    Serial.print(EE_Read(0));
    Serial.print(" ");
    Serial.print(EE_Read(1));    
    Serial.print(" ");
    Serial.print(EE_Read(2));
    Serial.print(" ");
    Serial.println(EE_Read(3));
    Serial.println(""); 
}

void loop() {
}

byte EE_Read(int Address) {                 // чтение byte  из ЕЕПРОМ
  byte rdata = 0xFF;
  Wire.beginTransmission(0x57);
  Wire.write(highByte(Address));
  Wire.write(lowByte(Address));
  Wire.endTransmission();
  Wire.requestFrom(0x57, 1);
  if (Wire.available()) rdata = Wire.read();
  delay(10);
  return rdata;
}

Где шина иницирована? Где проверка результата транзакции?

В 24 строке надо написать Wire.endTransmission(false);
И где то в setup прописать Wire.begin();

1 лайк

спасибо, с Wire.begin(); проморгал, добавил,
результат чтения поменялся - 51 83 63 68
до этого было 255 255 255 255

так же исправил Wire.endTransmission(false); - это ничего не поменяло
по факту если читаю НАНкой, в ячейках лежит 0 70 0 0 (это именно то что туда записывал)

з.ы. простите старого дурака, всё работает! (слегка накосячил пока правил)
ОГРОМНОЕ СПАСИБО за оперативную помощь

На UNO работает без false ???

Совсем недавно была похожая тема - Не работает FM24I2C - #13 от пользователя 3d_killer