Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

Arduino:Библиотеки/Wire/endTransmission()

Материал из Онлайн справочника
Перейти к: навигация, поиск

{{#setlogo:ArduinoCommunityLogo.png}}

Перевод: Максим Кузьмин (Cubewriter)
Перевел 2686 статей для сайта.

Контакты:

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


Функция endTransmission()[1]

Завершает передачу данных ведомому устройству. Вызывается после функций beginTransmission(), которая начинает передачу данных, и write(), которая выставляет байты в очередь.

Начиная с Arduino 1.0.1, функция endTransmission() принимает булевы аргументы, которые меняют ее поведение для совместимости с определенными I2C-устройствами.

Если выставить true, то endTransmission() после запроса отправит стоп-сообщение, тем самым освободив шину I2C для других действий.

Если выставить false, то endTransmission() после запроса отправит перезапускающее сообщение. В итоге шина не освободится, что помешает другому ведущему устройству сделать запрос между сообщениями. Благодаря этому одно ведущее устройство может отправлять несколько запросов подряд.

По умолчанию стоит аргумент true.

Синтаксис

Wire.endTransmission()
Wire.endTransmission(stop)

Параметры

stop – булев аргумент: если поставить true, после запроса будет отправлено стоп-сообщение, которое освободит шину, а если false, то после запроса будет отправлен рестарт, и соединение останется активным

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

Значение, указывающее на статус передачи. Тип данных – byte. 
«0» – успешно, «1» – данные слишком большие и не помещаются в буфер передачи, «2» – получено NACK-сообщение на передачу адреса, «3» – получено NACK-сообщение на передачу данных, «4» – другая ошибка.

См.также

  • Wire.beginTransmission()
  • Wire.write()

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

  1. Arduino.cc - WireEndTransmission