Arduino:Справочник языка Arduino/Библиотеки/Wire/write()

Материал из Онлайн справочника
Версия от 09:36, 14 декабря 2016; Myagkij (обсуждение | вклад) (Замена текста — «<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">» на «<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску

{{#setlogo:ArduinoCommunityLogo.png}}

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Функция Wire.write()[1]

Передает данные от ведомого устройства к ведущему в ответ на запрос. Также используется в связке с функциями beginTransmission() и endTransmission() — write() вызывается между ними и формирует очередь байтов для последующей передачи данных от ведущего устройства к ведомому.

Синтаксис

Wire.write(value) 
Wire.write(string) 
Wire.write(data, length)

Параметры

value  значение, отправляемое в виде одного байта
string  строка, отправляемое в виде серии байтов
data  массив данных, отправляемый в виде серии байтов
length  количество передаваемых байтов

Что возвращает

Количество переданных байтов. Считывание этих байтов  опционально.

Пример

#include <Wire.h>

byte val = 0;

void setup()
{
  Wire.begin(); // подключаем шину i2c
}

void loop()
{
  Wire.beginTransmission(44); // передаем данные девайсу с адресом #44 (0x2c)
                              // адрес девайса указан в даташите
  Wire.write(val);            // отправляем байт с необходимым значением  
  Wire.endTransmission();     // останавливаем передачу данных

  val++;        // увеличиваем значение
  if(val == 64) // если достигли 64-ой позиции... (т.е. максимума)
  {
    val = 0;    // ...начинаем с самого низкого значения
  }
  delay(500);
}

См.также

  1. WireRead()
  2. WireBeginTransmission()
  3. WireEndTransmission()
  4. Serial.write()

Внешние ссылки