Wire.available() не возвращает нужное количество байт.

rigl
Offline
Зарегистрирован: 15.10.2014

Здравствуйте.

Не могу понять, почему Wire.available() всегда возвращает количество байт равное запросу, вот из примера для мастера.

#include <Wire.h>

void setup()
{
  Wire.begin();        // join i2c bus (address optional for master)
  Serial.begin(9600);  // start serial for output
}

void loop()
{
  Wire.requestFrom(2, 6);    // request 6 bytes from slave device #2

  while(Wire.available())    // slave may send less than requested
  { 
    char c = Wire.read(); // receive a byte as character
    Serial.print(c);         // print the character
  }
    Serial.println();         // print the character
  delay(500);
}

Если slave передает 1 байт, Wire.available() все равно будет 6.

art100
Offline
Зарегистрирован: 09.03.2014

версии библиотеки нет

шиза