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

Материал из Онлайн справочника
Версия от 12:30, 8 июля 2023; EducationBot (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску

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


Функция 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()

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